如何在目录中递归替换"XXX" | {"Foo", "Bar"}
所有"YYY" | {"Foo"}
文件?
我想使用sed
,但这里的特殊字符很棘手。
如何在目录中递归替换"XXX" | {"Foo", "Bar"}
所有"YYY" | {"Foo"}
文件?
我想使用sed
,但这里的特殊字符很棘手。
find
使用and的一种方法xargs
:
find . -type f -print0 | xargs -0 sed -i -r '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'
使用 perl:
> find . -type f|xargs perl -p -e 's/"XXX" \| {"Foo", "Bar"}/"YYY" \| {"Foo"}/g