我有以下文件:
linuxA.mtt.corp
linux3V
linux4B
linux2A
linux5v.mtt.corp
如何.mtt.corp
在每个没有这个单词的字符串上添加 ?
答案1
这很简单sed
:
sed -e '/\.mtt\.corp$/!s/$/.mtt.corp/' <file
这确实会在不以该字符串结尾的每一行上s
替换行尾。.mtt.corp
答案2
Perl 解决方案:
$ perl -lpe '$_ .= ".mtt.corp" if !/\.mtt\.corp$/' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
在应用 给定的脚本后打印输入文件的每一行,-p
并从每个输入行中删除尾随换行符并为每个调用添加一个换行符。变量是当前行。因此,如果该行尚未匹配, 则会将其添加到该行中。perl
-e
-l
print
$_
mtt.corp
awk 解决方案:
$ awk '!/\.mtt\.corp$/{$0=$0".mtt.corp"}1;' file
linuxA.mtt.corp
linux3V.mtt.corp
linux4B.mtt.corp
linux2A.mtt.corp
linux5v.mtt.corp
同样的想法。.mtt.corp
添加到任何$0
不以其结尾的行 ( ) 中,并打印每行 ( 1;
)。