在文本文件中,如何仅打印第一列重复但第二列不同的行?我想调和这些差异。可能使用awk / sed / bash?
输入:
Jon AAA
Jon BBB
Ellen CCC
Ellen CCC
输出:
Jon AAA
Jon BBB
注意,实际文件未排序。
感谢您的帮助。
答案 0 :(得分:1)
这一行应该做到:(为了更好的阅读,我将单行划分为3行)
awk '!($1 in a) {a[$1]=$2;next}
$1 in a && $2!=a[$1]{p[$1 FS $2];p[$1 FS a[$1]]}
END{for(x in p)print x}' file
p
中,这样同样的$ 1,$ 2组合将不会多次打印。p
答案 1 :(得分:1)
sort file | uniq -u
仅打印独特的线条。
答案 2 :(得分:1)
这可能对您有用:
sort file | uniq -u | rev | uniq -Df1 | rev
这会对文件进行排序,删除任何重复的行,反转行,删除不具有相同键的唯一行(保留第二个字段相同的重复行)并将行反转到其原始位置。
这将删除带有单键的重复行和行。
答案 3 :(得分:0)
正常的唯一排序应该有效
awk '!a[$0]++' test