【发布时间】:2014-04-25 05:51:04
【问题描述】:
我正在尝试使用 perl 命令行替换多行块。 正文如下:
@LNCaP.2622 GAPC:1:1:4519:1350 length=76
TTTCCATTGCAGGTTTTAAAGTGGAGATTCTGAAGGGGAAAATAGGCACTGTCAGAACAAAGCTACCTGGAAACAG
+LNCaP.2622 GAPC:1:1:4519:1350 length=76
DD@:BBBBDDD@D:B::=:6:(6//;589444004':839>>2;;:':>>:7B:><B<B#################
@LNCaP.2623 GAPC:1:1:4767:1343 length=76
+LNCaP.2623 GAPC:1:1:4767:1343 length=76
@LNCaP.2624 GAPC:1:1:4794:1349 length=76
我尝试运行以下正则表达式:
perl -pe "s/^@.*\n\s*\n+//mg" test.txt
希望得到以下输出:
@LNCaP.2622 GAPC:1:1:4519:1350 length=76
TTTCCATTGCAGGTTTTAAAGTGGAGATTCTGAAGGGGAAAATAGGCACTGTCAGAACAAAGCTACCTGGAAACAG
+LNCaP.2622 GAPC:1:1:4519:1350 length=76
DD@:BBBBDDD@D:B::=:6:(6//;589444004':839>>2;;:':>>:7B:><B<B#################
@LNCaP.2624 GAPC:1:1:4794:1349 length=76
正则表达式 ^@.*\n\s*\n\+.*\n\s*\n 使用上面的文本识别我想在 regex101.com 上删除的 4 行,但是,当我从我的 shell 运行命令时,输出不变:(
我不能使用行号,因为这是从一个更大的文件中提取的,这意味着它必须应用于与该模式匹配的所有 4 行实例。
知道我做错了什么吗?
谢谢
【问题讨论】: