Unix - 从文件中删除重复的标头

时间:2015-10-19 17:59:11

标签: bash sed scripting


  我有一个文件(result.txt),它有几个重复的标题行,我想只保留一个标题行并删除所有其他重复项(请参阅所需的输出)。我尝试使用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

由于

1 个答案:

答案 0 :(得分:1)

尝试使用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

如果您想“编辑”,请添加sed的选项-i