Bashは、コマンドラインでファイル内のさまざまな場所にある文字列を置き換えます。

Bashは、コマンドラインでファイル内のさまざまな場所にある文字列を置き換えます。

次の内容を含むファイルがあります。私は交換したいのですが、どこでもchromeそうchromeBackupではありません。

Name=chrome
XXXXXXXXXXX
Run=bin -app "chrome/chrome.sh"
XXXXXXXXXXX
Vol.apps/chrome=chrome
XXXXXXXXXXX

希望の出力:

Name=chrome
XXXXXXXXXXX
Run=bin -app "chromeBackup/chromeBackup.sh"
XXXXXXXXXXX
Vol.apps/chromeBackup=chromeBackup
XXXXXXXXXXX

ベストアンサー1

提供した情報に基づいて2つの場所を交換しようとしているので、次のようにします。

sed -e /^Run/s/chrome/chromeBackup/g -e /^Vol/s/chrome/chromeBackup/g file_name

編集する

@Kusalanandaが彼のコメントで述べたように、より短いバージョンは次のとおりです。

sed -E '/^(Run|Vol)/s/chrome/&Backup/g' file_name

おすすめ記事