【发布时间】:2013-10-13 12:52:20
【问题描述】:
这是输入文件
{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 这样的标签:它的多行标签.. 我怎样才能删除那些?
【问题讨论】:
-
whciha re,这是一个令人震惊的错字。 -
这里提示:要匹配多行字符串,不能逐行读取文件。
-
根据你展示的数据,我们必须推断出格式的规则,这并不明显——它不是一种常见的格式。似乎以
{开头的行作为“组开始”标记可能具有一定的意义。似乎有“标签”,它们是以冒号、2 或 3 个字母数字和另一个冒号开头的行;这些可能后面是非空数据,可能分布在几行中,其中连续行不以标签开头。还有一些行包含-};目前尚不清楚这是否只是前一个标签 (:72:) 数据的一部分或其他内容。 -
不过,我们真的不应该对此进行猜测;你应该告诉我们格式的规则,所以我们知道
-}行是保留还是删除。这对您来说可能很明显;这对局外人来说并不明显。 -
对不起.. -} 是消息的结尾,因此不应将其作为标签 72 的一部分删除..