搜索不完全匹配并返回该文件的第 1 列

搜索不完全匹配并返回该文件的第 1 列

我有一个制表符分隔的文件,如下所示:

Adam    Group1,Group2,Group8,Group9,Group10
James   Group1,Group11,Group12,Group7
Kelly   Group18
Alfred  Group1,Group8,Group10
Manuel  Group2,Group5,Group1
Jack    Group11,Group8,Group19

我现在想要搜索一个组,例如组 1,并返回该组的所有成员。例如,“Group1”的返回结果为:

Adam
James
Alfred

例如 Group12 的返回结果为:

James

我不确定如何在列中搜索,而不是完全匹配。

答案1

使用 GNU Awk:

awk '/\<Group1\>/ {print $1}' file
Adam
James
Alfred
Manuel

注:根据您输入的数据,Manuel在第 1 组...

答案2

由于某种原因,整个单词匹配 ( \<...\>) 不适用于我的 awk 版本,因此我必须在grep的帮助下解决它:

grep '\<Group1\>' filename | awk '{print $1}'

相关内容