Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 正则表达式:搜索一个单词并在行尾追加一个新词_Linux_Perl_Sed - Fatal编程技术网

Linux 正则表达式:搜索一个单词并在行尾追加一个新词

Linux 正则表达式:搜索一个单词并在行尾追加一个新词,linux,perl,sed,Linux,Perl,Sed,我有一些TCL文件,其中包含许多类似这样的行 unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0 unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0 edge-profile. 不幸的是,我忘了在结尾加上一个词(边缘轮廓)。应该是这样的 unp classification ip-address $env(SOURCE_IP4) m

我有一些TCL文件,其中包含许多类似这样的行

unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0
unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0 edge-profile. 
不幸的是,我忘了在结尾加上一个词(边缘轮廓)。应该是这样的

unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0
unp classification ip-address $env(SOURCE_IP4) mask 255.255.255.0 edge-profile. 

有人能告诉我如何通过关键字
“unp分类ip地址”
搜索该行,并在行的末尾添加单词“edge profile”。我需要更改多个文件。一行perl或sed脚本就可以了

如果行匹配
unp分类ip地址
,则sed执行以下命令,在该行末尾添加
edge profile
。@fedorqui表达式
s/$/edge profile/
应用于与指定模式匹配的行。因此
s/$/something//code>表示添加“something”在队伍的尽头。很有趣,谢谢@devnull和perreal@fedorqui是的,s表示替换,$表示行尾的正则表达式,“something”表示替换string@fedorqui,否,这是替换命令,将第一个斜杠之间的零件替换为第二个和第三个斜杠之间的零件。
$
是行尾标记,此表达式用
某物
替换行尾。但行尾并没有被消耗掉。
sed -i '/unp classification ip-address/s/$/ edge-profile/' *.tcl