【发布时间】:2018-03-16 14:42:51
【问题描述】:
我有一个文件 (input.txt),其结构类似于:
abc 1
bcd a
cde 1
def 4
efg a
fgh 3
我想删除第 2 列中的重复项,以便该列中只有唯一的字符串(独立于第 1 列中的内容)。但是选择的行应该是随意选择的。输出可能例如是:
bcd a
cde 1
def 4
fgh 3
我尝试创建一个列出重复项的文件(使用awk '{print $2}' input.txt | sort | uniq -D | uniq),但后来我只设法使用awk '!A[$2]++' 将它们全部删除,而不是随机保留其中一个重复项。
【问题讨论】:
-
awk '!A[$2]++' file有什么问题 -
如果第 2 列中有重复项,
awk '!A[$2]++' file会删除该行。但我想在文件中保留一次重复出现(以随机方式)。
标签: bash awk duplicates multiple-columns