下面提到的命令中对:label;N
和b label
的解释是什么
sed -i ':label;N;s/\+.*\n.*\n//;b label' paired.fa
piared.fa
看起来像这样
@HWI-ST963:188:C29Y5ACXX:4:1107:1493:57038/1:@HWI-ST963:188:C29Y5ACXX:4:2307:16619:181383/2
GAGCCCCGCTTCATCGCCGTGGGCTACGTGGACGACACGCAGTTCGTGCGGTTCGACAGCGACGCCGCGAGCCAGAAGATGGAGCCGCGGGCGCCGTGGAT:TCCATGAGGTATTTCTTCACATCCGTGTCCCGGCCCGGCCGCGGGGAGCCCCGCTTCATCGCCGTGGGCTACGTGGACGACACGCAGTTCGTGCGGTTCGA
+:+
@CCFFFFFHHHGHIIFIIJGHGGGHIIJFGGGG0AH>GEHFFFEED=?@BD?B?BABDDDDDDBBDBBDBDDDCBBDCDCCCCDDDDDDBBBBDBB5<B@C:@@CFFFFFHFHHHJJJJJIJJIIJJJJJIJJJJJJJGGIJEHEFDDBDDD@BBDBDDDEEDDDDBDDDDCDDDDDDDDDBD>BBDDDDDDDBDDDD5<BD@
@HWI-ST963:188:C29Y5ACXX:4:2307:16619:181383/1:@HWI-ST963:188:C29Y5ACXX:4:2307:7539:10902/2
CCCTCCTGCTCTATCCACGGCGCCCGCGGCTCCATCTTCTGGCTCGCGGCGTCGCTGTCGAACCGCACGAACTGCGTGTCGTCCACGTAGCCCACGGCGAT:GAGCCCCGCTTCATCGCCGTGGGCTACGTGGACGACACGCAGTTCGTGCGGTTCGACAGCGACGCCGCGAGCCAGAAGATGGAGCCGCGGGCGCCGTGGAT
+:+
CCCFFFFFHHHHHJJIJIJJJJJJJJJJIJJJHGHHHHFFFFFCE?BBB<<07<@BB@C@A@ADBD;BDBDDACD95<9BDBBD@DDBCBBDDBDBBB@@9:CCCFFFFFHHHGHJJJJJJIJJJJJJJJJJJIJJJJIJHHFFFEEDCDDDB?BDDDDDDDDDDDBDDDDDDDDDDDDDCDDDDDDDDDDDDDDDDD<BD?@
@HWI-ST963:188:C29Y5ACXX:4:2307:7539:10902/1:@HWI-ST963:188:C29Y5ACXX:4:1107:1493:57038/2
GCCTTCATATTCCGTGTCTCCTGGTCCCAATACTCCGGCCCCTCCTGCTCTATCCACGGCGCCCGCGGCTCCATCTTCTGGCTCGCGGCGTCGCTGTCGAA:GCCTTCATATTCCGTGTCTCCTGGTCCCAATACTCCGGCCCCTCCTGCTCTATCCACGGCGCCCGCGGCTCCATCTTCTGGCTCGCGGCGTCGCTGTCGAA
+:+
CCCFFFFFHHHHHIHHHIJJJIJJIJJJJIJJJJJJJIJJJJJJIIJIJJJIGIHIJJJGFDDBDDDDDDDDDDDDDEDDDDDD9@>B@@9@BB9><A8<@:@CCFFFFFHHGHHIGHGHIIGIJJDHHIJIHHIIIHIGGGHJGIJCEHEHHHJEHJIIJHFDDDDDD@DDDDDCDDCDDCDDDD799>B95<9<>.5:(8@
答案 0 :(得分:1)
:label
是一个标签,表示代码中的地点标记。
N
表示读取下一行并将其添加(以换行符开头)到当前模式空间的末尾。
在执行N
之前,sed的模式空间保存它所拥有的任何内容。执行N
后,它保存(a)之前的内容,(b)换行符,以及(c)从文件中读取的下一行。
b label
表示分支到名为label
的位置。
此代码的净效果是查找包含加号+
的行,并删除带有加号的所有内容到带有加号的下一行的末尾。