我有一个这样的文件:

A2M TIAM1

AARSD1 NLRP12

ABCA12 ABCA1

ABCA12 NR1H2

ABCA1 ABCA12

ABCA13 APOA2

ABCA13 CLK1

NLRP12 AARSD1

ABCA13 HAGH

ABCC10 ATP2B2

我想去掉col2 col1的重复值。例如:
ABCA1 ABCA12

…和:
NLRP12 AARSD1

……在这种情况下。
在Bash脚本中,最好的方法是什么?

最佳答案

这是在使用awk

awk '!seen[$1]++ && !seen[$2]++' your-file

这将只打印col1和col2中的唯一值,根据您的输入,这将是输出:
A2M TIAM1
AARSD1 NLRP12
ABCA12 ABCA1
ABCA13 APOA2
ABCC10 ATP2B2

要按不同的对分组,请尝试执行以下操作:
awk '!seen[$1 $2]++ && !seen[$2 $1]++' your-file

这将是输出:
A2M TIAM1
AARSD1 NLRP12
ABCA12 ABCA1
ABCA12 NR1H2
ABCA13 APOA2
ABCA13 CLK1
ABCA13 HAGH
ABCC10 ATP2B2

08-04 21:22