例: 次のような txt ファイルがあります。
text("こんにちは") text("世界") text("一度") text("再び")
Aim to replace
hello with string_1,
world with string_2,
once with string_3,
again with string_4,
スクリプトの書き方は?
優れた手法は、置換文字列の辞書を使用することです。何かのようなもの:
perl -pe '%x=(
"hello" => "string_1",
"world" => "string_2",
"once" => "string_3",
"again" => "string_4",
);
s/$k/$v/g while( $k, $v ) = each %x' input-file
perl -pi -e 's/hello/string_1/g;s/world/string_2/g;s/once/string_3/g;s/again/string_4/g' your_file;
上記のコマンドはインプレース置換を行います。コンソールへの出力が必要な場合は、" i
" を削除してください。
別の方法は次のとおりです。
sed -e 's/hello/string_1/g;s/world/string_2/g;s/once/string_3/g;s/again/string_4/g' your_file
awk:
awk '{gsub(/hello/,"string_1");gsub(/world/,"string_2");gsub(/once/,"string_3");gsub(/again/,"string_4");print}' your_file