ファイルがあります。
$ cat file
"bar": false
"foo": false
パターン"foo": false
でのみ、Word false
をtrue
に置き換える必要があります。問題は引用符とスペースです。
私は2つの方法について考えました:
2オプションの試用例:
$ sed -i 's/\(.*foo\)/false/true\1/g' file
失敗しました。
住所を使用します。 sed
式を単一引用符で囲む場合、引用符は問題になりません。
$ sed '/"foo"/ s/false/true/' file
"bar": false
"foo": true
パターン全体を本当に一致させる必要がある場合は、次のようにします。
$ sed '/"foo": *false/ s/false/true/' file
"bar": false
"foo": true
*
は、任意の数の先行文字(スペース)と一致します。
\s
を使用して、タブ(任意の水平方向の空白)も一致させることができます。
sed '/"foo":\s*false/ s/false/true/' file
テスト後に-i
オプションを追加して、元のファイルを変更します。