如果第一个字段是重复字段,则查找awk(或sed)单行以从输出中删除行。
删除我看过的重复行的示例是:
awk 'a !~ $0; {a=$0}'
尝试使用它作为没有运气的基础(我认为将$ 0改为1美元就可以了,但似乎没有用)。
答案 0 :(得分:26)
awk '{ if (a[$1]++ == 0) print $0; }' "$@"
这是关联数组的标准(非常简单)用法。
答案 1 :(得分:9)
这是删除重复的方法
awk '!_[$1]++' file
答案 2 :(得分:1)
如果你打开使用Perl:
perl -ane 'print if ! $a{$F[0]}++' file
-a
自动将该行放入@F
数组,该数组从0开始编制索引
如果已经看到第一个字段,则%a
哈希会记住
此相关解决方案假设您的字段分隔符是逗号,而不是空格
perl -F, -ane 'print if ! $a{$F[0]}++' file
答案 3 :(得分:0)
它打印重复项的唯一值和单个值
awk '!a[$1]++' file_name