Sedを使用して、定義された変数で行をスペースに置き換えようとしています。
例えば、
「ダム文字列」を$ lanに置き換え、lan = "〜/ afile.py
私は線が
sed "s/a dumb string/$lan/g" file.txt
ただし、file.txtの「ダム文字列」の部分は空白のままにします。
私の問題は非常に単純なようです。どんな助けでも大歓迎です。
私の@lan変数にはスラッシュが含まれているため、次のコマンドを使用してsedコマンドを使用する必要があると判断しました。
例えば
sed "s:a dumb string:$lan:g" file.txt
これはおそらく初心者の間違いですが、私はsedにはあまり詳しくありません。ご協力ありがとうございました。
sed
は変数を渡していることを認識していません-正規表現の別の部分として解釈されます。置換にスラッシュが含まれている場合は、次のように代替セパレーター文字を使用するのが最も簡単です。
sed "s|a dumb string|$lan|g" file.txt
検索文字列の一部のスペースが機能しないため、centosで[[:space:]]を使用する必要がありました。
sed -i 's/User[[:space:]]daemon/User Apache/' httpd1.conf