如何使用 awk 根据特定列值打印唯一行?

如何使用 awk 根据特定列值打印唯一行?

我有一个包含多个字段的逗号分隔文件。

例子:

candidate1,12,56,ATTG
candidate2,45,90,ATTG
candidate3,90,140,ATTG
candidate4,2,36,AGCT

那么,有人知道答案吗?

答案1

假设您需要根据第 1 列( 等)打印唯一的candidate1candidate2。请注意,这将打印一行的第一个实例,candidate1等等。要打印基于第 2 列的唯一行,请更改$1$2下面的内容。

awk -F, '!($1 in arr){print} {arr[$1]++}' file_name

答案2

如果所有字段都像这样以逗号分隔

1, candidate1,12,56,ATTG
2, candidate2,45,90,ATTG 
3, candidate3,90,140,ATTG 
4, candidate4,2,36,AGCT

然后你做这样的事情

$ grep -E 'candidate1|candidate3' 文件名 | awk -F, '{打印 $0}'
1、候选人1,12,56,ATTG
3、候选人3,90,140,​​ATTG

单行的另一个例子

$ cat 文件名 | egrep 'candidate3' | 'candidate3' | awk -F, '{打印 $0}'
3、候选人3,90,140,​​ATTG

相关内容