ディレクトリ内のすべてのファイルを再帰的に置き換える"XXX" | {"Foo", "Bar"}
にはどうすればよいですか?"YYY" | {"Foo"}
使いたいのですsed
が、ここの特殊文字はトリッキーです。
ディレクトリ内のすべてのファイルを再帰的に置き換える"XXX" | {"Foo", "Bar"}
にはどうすればよいですか?"YYY" | {"Foo"}
使いたいのですsed
が、ここの特殊文字はトリッキーです。
find
およびを使用する1つの方法xargs
:
find . -type f -print0 | xargs -0 sed -i -r 's/"XXX" \| \{"Foo", "Bar"\}/"YYY" \| \{"Foo"\}/g'
perlを使用する:
> find . -type f|xargs perl -p -e 's/"XXX" \| {"Foo", "Bar"}/"YYY" \| {"Foo"}/g
これはあなたのために働くかもしれません(GNU sed):
find . -type f -print0 |
xargs -0 sed -i '/"XXX"\s*|\s*{\s*\("[^"]*"\)\s*,\s*"[^"]*"\s*}/s//"YYY" | {\1}/g'