如何删除CSV文件中的一系列行,除了给定范围之间的一行(或几行或不连续)...让我说我需要删除CSV文件的前五行但保留第3行,你是如何实现这一目标的。我试图使用SED但没有帮助。
sed '1,5d;3!d' filenname.CSV > tempfilename.txt
我知道我可以通过给出范围
来做到这一点sed '1,2d;4,5d' filenname.CSV > tempfilename.txt
然而,想知道是否有解决办法,我可以指定一个范围来删除,并给出一行(或多行或不连续)之间的例外
如果我错了,请纠正。
提前致谢, Dhruuv
答案 0 :(得分:5)
将您的sed
示例转播到下面的
sed '1,5{3p;d}' filenname.CSV > tempfilename.txt
或者在删除范围1-5
中的所有其他内容时打印第3行和第4行sed '1,5{3p;4p;d}' filenname.CSV > tempfilename.txt
答案 1 :(得分:3)
答案 2 :(得分:2)
这可能对您有用:
sed '1,5{3!d}' file
或:
sed '1,5!b;3!d' file
或:
sed '3b;1,5d' file
答案 3 :(得分:0)
perl -ne 'print unless 1..5 and not 3..3' filename.CSV > tempfilename.txt
如果你可以使用perl而不是sed,会起作用。