次のファイルがあります。
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 '!/\.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;