Unix - 从文件中删除重复项 headers

Unix - removing duplicate headers from file


我有一个文件 (result.txt) 几乎没有重复的 header 行,我只想保留一个 header 行并删除所有其他重复项(参考所需的输出)。我尝试使用 sort -u、uniq、sed 和所有其他选项,但无法获得所需的输出。有人可以帮我解决这个问题吗?

cat result.txt
Metric              date_sk  date_sk -7 
----------------  ----------  ---------- 
Test1            2015-10-19  2015-10-12
Metric                 date_sk  date_sk -7 
----------------  ----------  ---------- 
Test2            2015-10-19  2015-10-12  
Metric               date_sk  date_sk -7 
----------------  ----------  ---------- 
Test3            2015-10-19  2015-10-12

Desired output:
Metric              date_sk  date_sk -7 
----------------  ----------  ---------- 
Test1            2015-10-19  2015-10-12
Test2            2015-10-19  2015-10-12 
Test3            2015-10-19  2015-10-12

谢谢

用 GNU sed 试试这个:

sed '3,${/^Metric/d;/^---/d}' file

输出:

Metric              date_sk  date_sk -7 
----------------  ----------  ---------- 
Test1            2015-10-19  2015-10-12
Test2            2015-10-19  2015-10-12  
Test3            2015-10-19  2015-10-12

如果你想编辑 "in place" 添加 sed 的选项 -i