0

这是输入文件

{1:IRVTUS30XXX}{2:I304dfaffaefa}{3:fewfa]}
:15A:
:20:1234556
:22:dsafas
dsafafaf
erwfafgr
:23:fewfd
:24:firh
:60:uncenjnjcdv
:72:uenuernfk
12345
-}

在这里,我想从输入文件中删除一些标签信息。(标签是:15A::22:在冒号之间的称为标签)

如果我想删除标签 20,我可以使用下面的 perl 命令:

perl -i -pe 's/:20:(.*)\r\n//g' file

但是对于像:22:或:72这样的标签:它的多行标签..我怎样才能删除这些?

4

2 回答 2

0

删除标签 22 的示例代码(适用于多行或单行):

% perl -00 -pe 's/^:22:.*?(?=(?:^:\d+\w*|$))//ms' file.txt
{1:IRVTUS30XXX}{2:I304dfaffaefa}{3:fewfa]}
:15A:
:20:1234556
:23:fewfd
:24:firh
:60:uncenjnjcdv
:72:uenuernfk
12345
-}
于 2013-10-13T15:42:34.633 回答
0

在这里,您可以使用表达式来选择两个标签号。22和标签号。72

:(72|22):([\w\d]*(\r?\n|\r\n?)+)+

是比赛的测试。

于 2013-10-13T13:00:50.930 回答