特定のテキストで始まる行を置き換えるには、sedまたはperlコマンドが必要です。

特定のテキストで始まる行を置き換えるには、sedまたはperlコマンドが必要です。

私は複数のサーバー上のファイルで特定のテキストで始まる行を見つけてから、行全体を置き換えるsedまたはperlコマンドを探しています。行は常に同じ文字列で始まりますが、残りは異なる場合があります。だから、最初とかなりうまくいく必要があり、すべてを交換します。

例えば

サーバー1:myfile.txt

SAMail: [email protected]

サーバー2:myfile.txt

SAMail: [email protected]

サーバー3:myfile.txt

SAMail: [email protected]

file.txt3つのサーバーすべてのMyで「SAMail:」を見つけて次に置き換えるには、コマンドが必要です。SAMail: [email protected]

答え1

sed私が正しく理解したなら、これは1つの可能性です。

入力する

SAMail: [email protected]
foo: [email protected]
foo SAMail

sed '/^SAMail/s;[^ ]*$;[email protected];' "My file.txt"

出力:

SAMail: [email protected] 
foo: [email protected]
foo SAMail

関連情報