我一直在我的Mac电脑上尝试以下命令,删除2行(包括包含图案的行和连续行)
sed -i '' -e "s/.*GAII02_0001:1:15:14342:18862#0/1.*/ , +1d" output.fa new.fa
但我收到以下错误:
`sed: 1: "s/.*GAII02_0001:1:15:14 ...": bad flag in substitute command: ','`
示例输入:
GAII02_0001:1:94:1703:4111#0/1 ATTTAGGGATTTAAGGATTAAGGATTAAGGATCCAGAGATTTAGGGATTTA GAII02_0001:1:15:14342:18862#0/1 TTAGAGATTTAGGGATTTAGGGATATAGGGATTTAGTGATTTAGGGATTTA GAII02_0001:1:7:12506:5001#0/1 AATCCCTAAATCTCTGGATCCTTAATCCTTAATCCTTAAATCCCTAAATCC
示例输出:
GAII02_0001:1:94:1703:4111#0/1 ATTTAGGGATTTAAGGATTAAGGATTAAGGATCCAGAGATTTAGGGATTTA GAII02_0001:1:7:12506:5001#0/1 AATCCCTAAATCTCTGGATCCTTAATCCTTAATCCTTAAATCCCTAAATCC
答案 0 :(得分:2)
您可以使用
sed '/GAII02_0001:1:15:14342:18862#0\/1/{N;d;}' foo.txt
这将为您提供所需的输出
GAII02_0001:1:94:1703:4111#0/1
ATTTAGGGATTTAAGGATTAAGGATTAAGGATCCAGAGATTTAGGGATTTA
GAII02_0001:1:7:12506:5001#0/1
AATCCCTAAATCTCTGGATCCTTAATCCTTAATCCTTAAATCCCTAAATCC
这样做是使用N
将下一行附加到模式空间,然后使用d
删除这两行。
答案 1 :(得分:1)
如果您在比赛后阅读下一行
,则可以删除两行另请注意,我已经转义搜索字符串中的/
,否则会终止表达式。
而且你输入了它作为替换,它只是一个匹配器
$ sed -e "/.*GAII02_0001:1:15:14342:18862#0\/1.*/{N;d;}" testfile
GAII02_0001:1:94:1703:4111#0/1
ATTTAGGGATTTAAGGATTAAGGATTAAGGATCCAGAGATTTAGGGATTTA
GAII02_0001:1:7:12506:5001#0/1
AATCCCTAAATCTCTGGATCCTTAATCCTTAATCCTTAAATCCCTAAATCC
答案 2 :(得分:0)
试试这个:
sed -i.bak '/GAII02_0001:1:15:14342:18862#0\/1./,+1d' file
由' /'引起的错误在模式中。逃避它将是工作..
-i.bak
将使用新文件file.bak备份您的文件。关心元数据~~