如果找到搜索模式,则在行尾添加文本

问题描述 投票:0回答:1

这是我在这个论坛上的第一个问题:)。

我有一个类似文件:

----File--------
XI39/XM79 XI39/XM79#G XI39/XM79#S XI39/XM79#D XI39/XM79#B XI39/XM79#DN append_text! 
+ search_pattern
+ w=5e-07 l=3.85e-07 sa=4.1e-07 sb=4.1e-07 ad=2.05e-13 as=2.05e-13 pd=1.82e-06

XI57/XM0@1 XI57/XM0@1#G XI57/XM0@1#S XI57/XM0@1#D XI57/XM0@1#B XI57/XM0@1#DN
+ search_pattern
+ w=1e-06 l=3.85e-07 sa=4.1e-07 sb=1.215e-06 ad=2.1e-13 as=4.1e-13 pd=1.42e-06

我想搜索“ search_pattern”,如果找到,请看上面的一行并附加“ append_text!”如果不存在,则在行尾。

所以输出文件应该是:-

------------输出文件------

XI39/XM79 XI39/XM79#G XI39/XM79#S XI39/XM79#D XI39/XM79#B XI39/XM79#DN **append_text**! 
+ **search_pattern**
+ w=5e-07 l=3.85e-07 sa=4.1e-07 sb=4.1e-07 ad=2.05e-13 as=2.05e-13 pd=1.82e-06

XI57/XM0@1 XI57/XM0@1#G XI57/XM0@1#S XI57/XM0@1#D XI57/XM0@1#B XI57/XM0@1#DN **append_text**!
+ **search_pattern**
+ w=1e-06 l=3.85e-07 sa=4.1e-07 sb=1.215e-06 ad=2.1e-13 as=4.1e-13 pd=1.42e-06

我有点了解perl,因此可以执行文件操作,但是在模式匹配方面一点都不好。任何指针都会有所帮助。

regex perl
1个回答
0
投票
while(<Your filehandle name>)
{
if ($string =~ m/search_pattern/g) 
{
$_=~ s/append_text/**append_text**/g;
}
close(filehandle name)
© www.soinside.com 2019 - 2024. All rights reserved.