ファイル内の行を検索して編集する

ファイル内の行を検索して編集する

ファイルに次の行が含まれている場合:

...
OPTION=“—option1 —option2 param —option3 —option4”
...

次のユーティリティの最適な組み合わせは何でしょうか?

  • ファイル内でその行を探します(文字列「OPTION」を含む唯一の行であると仮定します)
  • オプション文字列に追加して、次のようになります。

    OPTION=“—option1 —option2 param —option3 —option4”
    

答え1

尊敬すべきedと共に:

ed file <<<EOF
/OPTION/a
-option5
.
wq
EOF

答え2

使用sed

sed 's/\(OPTION=\“—option1 —option2 param —option3 —option4\)\"/\1 -option5\"/

\(パターンを、置換のために呼び出されるレジスタに格納します\1。バックスラッシュで\"エスケープする必要がある場所に注意してください。"

で始まるパターンを検索する場合はOPTION、次のように使用できます。

sed 's/\(OPTION=.*\)\"/\1 -option5\"/

答え3

perl -pi -e 's/(OPTION=".*)"/$1  —option5"/g' file.txt

関連情報