GNU/Linux >> Linux の 問題 >  >> Linux

sed での環境変数の置換

Norman Ramsey の回答に加えて、文字列全体を二重引用符で囲むことができることを追加したいと思います (これにより、ステートメントが読みやすくなり、エラーが発生しにくくなります)。

したがって、「foo」を検索して $BAR の内容に置き換えたい場合は、sed コマンドを二重引用符で囲むことができます。

sed 's/foo/$BAR/g'
sed "s/foo/$BAR/g"

最初の $BAR は正しく展開されませんが、2 番目の $BAR は正しく展開されます。


あなたの 2 つの例は同じように見えるため、問題の診断が難しくなります。潜在的な問題:

<オール>
  • sed 's/xxx/'"$PWD"'/' のように二重引用符が必要な場合があります

  • $PWD スラッシュが含まれている可能性があります。その場合、文字を検索する必要があります $PWD に含まれる 区切り文字として使用します。

  • おそらく、両方の問題を一度に解決するには

    sed '[email protected]@'"$PWD"'@'
    

    Linux
    1. Linux環境変数のヒントとコツ

    2. Linux 環境変数名で使用できる文字

    3. エクスポートされた環境変数を削除するにはどうすればよいですか?

    1. Linux でスペースを使用して環境変数を設定する

    2. Bashのコマンド置換への変数代入の終了コード

    3. sudo su に環境変数を渡す方法

    1. 私のgitの言語を変更するには?

    2. TERM 環境変数が設定されていません

    3. sed を使用して構成ファイルの変数を置き換える方法は?