sed コマンドで変数を使用する方法

sed コマンドで変数を使用する方法

走ろうとしています。

sed -i "/$variable/c \$variable1' file.txt

ただし、ファイルの変更は表示されませんfile.txt

しかし、同じコマンドは変数なしでうまく機能します。

sed -i "/variable/c \variable1' file.txt

答え1

このように:

sed -i "/$variable/c \\${variable}1" file.txt

多様性:

  1. \a 前に one がある場合、$シェルは$文字列にリテラルを挿入します。代わりに、atリテラルが印刷さ\れるように最初の項目をエスケープする追加の項目を追加してください。\

  2. 変数の後に文字または数字が続くと、{...}存在しない変数と変数を区別するために名前を囲みますvariable1(変数が存在しない場合、シェルは短い名前を見つけるのではなく何も拡張しません)。

  3. 引用と一貫性を維持するために始まるので!"で終わらないでください。'それにもかかわらず、変数は二重引用符内でのみ拡張できます。

このようなものをデバッグするには、echo次のコマンドを使用して出力を表示すると、何が間違っているかを確認できます。

echo sed -i "/$variable/c \$variable1" file.txt

それを比較してください。

echo sed -i "/$variable/c \\${variable}1" file.txt

関連情報