2016-10-03 5 views
-4

linuxファイルの文字列をシェルスクリプトを使用して可変値に置き換えたいとします。 シェルスクリプトでこれを試してみましたが動作しません。シェルスクリプトを使用したファイル内の値の置換

sed -i "s/$StrVal1/$StrVal2/" "$TargetFile"

助けてください。

+0

より具体的には、どのような出力が期待されましたか、どのようなエラーメッセージが表示されたのですか? –

+0

いずれかの文字列にスラッシュが含まれていると、問題は完全に予想されますが、その場合は十分な情報が含まれている必要があります。そのままでは、答えることができないほど詳細が不十分です。 http://stackoverflow.com/help/mcve –

+0

を参照してください。この質問のより良い策定には、編集中の実際のファイルコンテンツが含まれます(または、その内容が機密情報である場合、問題を再現するのに十分なテストが行​​われた他のコンテンツ)特定の 'StrVal1'と' StrVal2'の値も同様に問題を再現するためにテストされています。そして、「うまくいきません」の代わりに、それが**うまく動作しなかった方法を**正確に記述します:エラーメッセージ?ステータスは正常ですが、ファイルは変更されていませんか?他に何か? –

答えて

0

sedコマンドで "g"を忘れたと思います。私のLinuxシェルで私のために働く。ファイルをcatしてsedコマンドを実行することもできます。

まず、以下のように私は、プロンプトで、変数を定義します。

a='class'; b='CLASS' 

その後、私は猫sedコマンドでファイル:

cat a.txt | sed "s/$a/$b/g" 

だから私の入力ファイルが

class="pending">Count 
    class="completed">Count 
のようなものです

このコマンドの出力は、

です
CLASS="pending">Count: 
    CLASS="completed">Count: 
関連する問題