我有以下几行:
123 abcd 456 xyz
123 abcd 678 xyz
234 egfs 434 ert
345 fggfgf 456 455 rty
234 egfs 422 ert 33
所以在这里,如果第一个字段对于多行是相同的,则认为它们是重复的。因此,在上面的例子中,123在2行中是相同的,它们被认为是重复的(尽管它们在中间的一个字段中不同)。类似地,具有234的行是重复的。 我需要删除这些重复的行。
由于它们不是100%重复,sort u
不起作用。有谁知道我怎么能删除这些重复的行?
答案 0 :(得分:7)
% !awk '\!a[$1]++'
然后你得到了:
123 abcd 456 xyz
234 egfs 434 ert
345 fggfgf 456 455 rty
如果你在shell中执行,则不必逃避!
:
awk '!a[$1]++' file
答案 1 :(得分:0)
g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d
答案 2 :(得分:0)
我的PatternsOnText plugin很容易。它允许指定重复检查忽略的模式;在你的情况下,这将是第一个(空格分隔)字段之后的所有内容:
%DeleteDuplicateLinesIgnoring / .*/