删除awk中的重复标题

时间:2014-11-10 05:12:19

标签: unix awk sed cat gawk

我使用了cat来组合多个文件,它们都有相同的标题。无论如何我可以保留标题的1st出现并删除连接文件中的后续标题吗?

谢谢!

示例:

FirstName, LastName, Phone, Zip
(data)
(data)
(data)
FirstName, LastName, Phone, Zip
(data)
(data)
(data)

5 个答案:

答案 0 :(得分:0)

你可以这样做:

cp file1 result
tail -q -n +2 file2 file3 file4 >> result

也就是说,从file1的全部内容开始,然后从每个文件的第2行开始的其他文件中追加。这样您就可以避免尝试查找额外的标题并在以后删除它们。

如果您愿意,可以使用另一种相同的配方:

head -1 file1 > result
tail -q -n +2 file1 file2 file3 file4 >> result

答案 1 :(得分:0)

试试这个:

sed -e '2,$s/FirstName, LastName, Phone, Zip//g' -e '/^$/d' Yourfile.txt

您可以将“FirstName,LastName,Phone,Zip”替换为您拥有的任何标题。从第2行到文件结尾,它将删除标题模式,然后用/ ^ $ / d'删除空行

答案 2 :(得分:0)

我这样做:

sed '1h;2,$G;s/^\(.*\)\n\1$//;/./P;d' filename

答案 3 :(得分:0)

这是awk版本。除了行FirstName

之外,它会跳过1的所有行
awk 'NR>1 && /^FirstName/ {next}1' file
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
(data)
(data)
(data)

如果标题行发生变化,我们需要一个模式。

答案 4 :(得分:0)

awk way

awk '!a[$0];NR==1{a[$0]++}' file