lines.txt
12452236400...
和documents.txt
string1string2string3...
如果我有一个简短的行号列表,我可以轻松使用
sed -i’1d,4d,5d’documents.txt.
但是我必须删除很多行号.另外,我可以使用bash / perl脚本将行号存储在数组中,并回显不在数组中的行.但我想知道是否有内置命令来做到这一点.
任何帮助将受到高度赞赏.
解决方法 awk oneliner应该适合你,请看下面的测试:kent$ head lines.txt doc.txt ==> lines.txt <==1357==> doc.txt <==abcdefghkent$ awk 'NR==FNR{l[awk # the awk command 'NR==FNR{l[];next;} # process the first file(lines.txt),save each line(the line# you want to delete) into an array "l" !(FNR in l)' #Now come to the 2nd file(doc.txt),if line number not in "l",print the line out lines.txt # 1st argument,file:lines.txt docs.txt # 2nd argument,file:doc.txt];next;} !(FNR in l)' lines.txt doc.txtbdfh
正如Levon所说,我补充一些解释:
总结以上是内存溢出为你收集整理的linux – 使用其他文件中的行号从文本文件中删除行全部内容,希望文章能够帮你解决linux – 使用其他文件中的行号从文本文件中删除行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)