这是我的数据结构:
First A 1385
First B 8364
First C 9734
First C 9625
Second A 3566
Second B 9625
Second B 0238
我要删除重复的行条目(第1列和第2列中的信息)并保留第一次出现的内容
我想删除First C 9625
和Second B 0238
,因为它们是First C
和Second B
的第二次出现,结果如下:
First A 1385
First B 8364
First C 9734
Second A 3566
Second B 9625
我尝试了什么:
awk '{print $1"\t"$2}' FILE |
sort -u |
while read LINE; do
echo $LINE |
tr ' ' '\t' |
grep -m1 -F -f - FILE
done
我只是在学习bash编码,我的解决方案非常笨拙。我相信可以在一个bash命令中执行我想要的操作。
答案 0 :(得分:3)
$ awk '!seen[$1,$2]++' file
First A 1385
First B 8364
First C 9734
Second A 3566
Second B 9625
以下是您在字段之间需要,
的原因:
$ cat file
ab c
a bc
$
$ awk '!seen[$1,$2]++' file
ab c
a bc
$ awk '!seen[$1$2]++' file
ab c