bash从文件中删除除一个重复匹配之外的所有匹配项

时间:2014-08-06 16:45:58

标签: bash grep duplicates

我有一个由测试失败组成的大文件。许多这些测试都有重复的故障。我想删除所有重复项,保留每种类型之一。以下是该文件的摘录:

034 [power] 34 of 343 check
056 [drive] 666 of 3345
099 [power] 53 of 4354
103 [power] 60 of 4354
231 [cpu]   2 of 653
437 [drive] 65 of 879
862 [speed] 864 of 4397 fast

在这个例子中,我想删除重复项,即附加的[power]和[drive]行

034 [power] 34 of 343 check
056 [drive] 666 of 3345
231 [cpu]   2 of 653
862 [speed] 864 of 4397 fast

我尝试使用grep -m 1和grep -v的组合,但不幸的是,这不起作用。

1 个答案:

答案 0 :(得分:4)

像这样?

kent$  awk '!a[$2]++' file
034 [power] 34 of 343 check
056 [drive] 666 of 3345
231 [cpu]   2 of 653
862 [speed] 864 of 4397 fast