@SRR037212.1 FC30L5TAA_102708:7:1:741:1355 length=27AAAAAAAAAAAAAAAAAAAAAAAAAAA+SRR037212.1 FC30L5TAA_102708:7:1:741:1355 length=27::::::::::::::::::::::::;;8@SRR037212.2 FC30L5TAA_102708:7:1:1045:1765 length=27TATAACCAGAAAGTTACAAGTAAACAC+SRR037212.2 FC30L5TAA_102708:7:1:1045:1765 length=27888888888888888888888888888
在每个块的第三行,我想删除字符后面的文本,导致:
@SRR037212.1 FC30L5TAA_102708:7:1:741:1355 length=27AAAAAAAAAAAAAAAAAAAAAAAAAAA+::::::::::::::::::::::::;;8@SRR037212.2 FC30L5TAA_102708:7:1:1045:1765 length=27TATAACCAGAAAGTTACAAGTAAACAC+888888888888888888888888888
在sed或Perl中有一个紧凑的方法吗?
解决方法 如果第一行或第二行中永远不存在a并且第三行总是存在一个:perl -0100pi -e's/\+.*/+/' datafile
除此以外:
perl -0100pi -e's/^((?:.*\n){2}.*?\+).*//' datafile
或者在5.10上:
perl -0100pi -e's/^(?:.*\n){2}.*?\+\K.*//' datafile
所有那些假设@只出现在一个块的开头.如果它可能出现在其他地方,那么:
perl -pi -e's/\+.*/+/ if $. % 4 == 3' datafile总结
以上是内存溢出为你收集整理的linux – 如何使用sed或Perl删除多行块中的部分行?全部内容,希望文章能够帮你解决linux – 如何使用sed或Perl删除多行块中的部分行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)