Awk 如何删除重复行而不进行排序并仅匹配第n列

Awk 如何删除重复行而不进行排序并仅匹配第n列,awk,duplicates,Awk,Duplicates,嗨,我正试图删除文件中的“重复”行,但我想保持文件顺序,我不想匹配整行,只是第二列 范例 23 google.com 345 432 3 543 google.com d9 0ds aa 8 amazon.com 820 2 2 45 google.com 80a s0d e 32 yahoo.com wqq 33 234 将成为 23 google.com 345 432 3 8 amazon.com 820 2 2 32 yahoo.com wqq 33 234 我知道如何对-u-o文件

嗨,我正试图删除文件中的“重复”行,但我想保持文件顺序,我不想匹配整行,只是第二列

范例

23 google.com 345 432 3
543 google.com d9 0ds aa
8 amazon.com 820 2 2
45 google.com 80a s0d e
32 yahoo.com wqq 33 234
将成为

23 google.com 345 432 3
8 amazon.com 820 2 2
32 yahoo.com wqq 33 234
我知道如何
对-u-o文件进行排序
,但这与enitre行匹配,并且它会对文件进行重新排序。我看到这个
awk'!查看[$0]+'文件
,该文件将避免排序,但仍与整行匹配

有人知道这是否可以做到吗

谢谢,
Chris

尝试匹配第二列:

awk '!seen[$2]++' 
awk '!seen[$2]++' file 

尝试只匹配第二列:

awk '!seen[$2]++' 
awk '!seen[$2]++' file 

可以修改awk解决方案以仅匹配第二列:

awk '!seen[$2]++' 
awk '!seen[$2]++' file 

可以修改awk解决方案以仅匹配第二列:

awk '!seen[$2]++' 
awk '!seen[$2]++' file 

0表示整行,2表示第二列。谢谢没错。默认字段分隔符(
FS
)通常是空白(空格、多个空格、制表符等)。使用
-F
,您甚至可以使用不同的分隔符拆分列,例如,
回显“hello+world”| awk-F“+”{print$2}'
将打印
world
。因此0表示整行,2表示第二列。谢谢没错。默认字段分隔符(
FS
)通常是空白(空格、多个空格、制表符等)。使用
-F
,您甚至可以使用不同的分隔符拆分列,例如,
回显“hello+world”| awk-F“+”{print$2}
将打印
world