我有一个问题控件txt文件。
一个txt文件包含以下示例结构 由制表符分隔(\ t) 它已按名称,desc分数,desc长度
排序Name Score Length
Test1 500 400
Test1 499 400
Test1 499 399
Test1 498 100
Test2 600 200
Test2 600 199
Test2 599 199
我想删除没有Name顶行的行 例如,如下所示
Name Score Length
Test1 500 400
Test2 600 200
任何人都有好主意想出来吗? Awk或Sed ..
感谢您的任何信息!
答案 0 :(得分:4)
由于您的文件已经排序,因此awk
生成:
$ awk '!a[$1]++' file
Name Score Length
Test1 500 400
Test2 600 200
这可以跟踪出现的第一个字段。一旦它们出现,它们的索引就会增加,因此任何以该值开头的行都会再次出现。
较长的版本,不是那么惯用,可能是:
awk '{if (a[$1]) next; a[$1]++} 1' file