2016-10-03 8 views
0

#key = *のようなパターンと一致させ、sedと正規表現を使用してkey = 1に置き換えようとしています。キー/値式をsedで照合して置き換える方法

これは私のコマンドです:

sed -r -e "s/#\s*key\s*=\s*[^\n]*/key\s*=\s*1/g /tmp/test.txt" 

が、それは私にエラーを与えている:

sed: -e expression #1, char 38: unknown option to `s' 

をそれは何を意味し、そして私はそれをどのように修正するのですか?

+0

入力データを表示します。 – blackpen

答えて

1

入力ファイル名が-eの一部ではないため、別の引数にする必要があります。

また、出力の\sは空白を作成しませんが、入力からの空白を(...)で取り込み、対応する\Nで出力することができます。

sed -r -e 's/#(\s*)key(\s*)=(\s*).*/key\2=\31/g' /tmp/test.txt 
0
$ echo '#key = *' | sed -r -e 's/#\s*key\s*=\s*[^\n]*/key = 1/' 
key = 1 

これはあなたの期待ですか?

関連する問題