Unix 删除awk中的重复标题
我使用Unix 删除awk中的重复标题,unix,awk,sed,cat,gawk,Unix,Awk,Sed,Cat,Gawk,我使用cat组合了几个文件,它们都有相同的标题。我是否可以保留头的1st引用,并删除连接文件中的后续头 谢谢 例如: FirstName, LastName, Phone, Zip (data) (data) (data) FirstName, LastName, Phone, Zip (data) (data) (data) 您可以这样做: cp file1 result tail -q -n +2 file2 file3 file4 >> result 也就是说,从file1
cat
组合了几个文件,它们都有相同的标题。我是否可以保留头的1st
引用,并删除连接文件中的后续头
谢谢
例如:
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
您可以这样做:
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
试试这个:
sed -e '2,$s/FirstName, LastName, Phone, Zip//g' -e '/^$/d' Yourfile.txt
您可以用任何标题替换“FirstName、LastName、Phone、Zip”。从第二行到文件末尾,它将删除页眉图案,然后用/^ $/d‘< /p>< p>删除空行:这样做:
sed '1h;2,$G;s/^\(.*\)\n\1$//;/./P;d' filename
这是一个
awk
版本。它将跳过名为的所有行,但行1
awk 'NR>1 && /^FirstName/ {next}1' file
FirstName, LastName, Phone, Zip
(data)
(data)
(data)
(data)
(data)
(data)
如果标题行没有改变,我们需要一个模式来遵循。awk-way
awk '!a[$0];NR==1{a[$0]++}' file
删除头的工作,虽然它没有删除空白空间。谢谢你顺便说一句。这很有效,虽然我忘了提到我有67个文件需要连接,但如果使用它,对我来说会很乏味。顺便说一句,谢谢你。如果你觉得答案有用且有趣,你可以投它一票。:)@potong:我在发布之前就尝试过这种方法,但没有成功——然后我看到了你的评论,又尝试了一次,避免了我在决定反对这种方法后注意到的几个陷阱,现在它成功了!更简单,短一个字符,捕捉效果好。