我使用了cat
来组合多个文件,它们都有相同的标题。无论如何我可以保留标题的1st
出现并删除连接文件中的后续标题吗?
谢谢!
示例:
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
答案 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