0

如何在目录中递归替换"XXX" | {"Foo", "Bar"}所有"YYY" | {"Foo"}文件?

我想使用sed,但这里的特殊字符很棘手。

4

3 回答 3

1

find使用and的一种方法xargs

find . -type f -print0 | xargs -0 sed -i -r 's/"XXX" \| \{"Foo", "Bar"\}/"YYY" \| \{"Foo"\}/g'
于 2012-08-29T00:44:03.327 回答
0

这可能对您有用(GNU sed):

find . -type f -print0 | 
xargs -0 sed -i '/"XXX"\s*|\s*{\s*\("[^"]*"\)\s*,\s*"[^"]*"\s*}/s//"YYY" | {\1}/g'
于 2012-08-29T07:00:43.613 回答
0

使用 perl:

> find . -type f|xargs perl -p -e 's/"XXX" \| {"Foo", "Bar"}/"YYY" \| {"Foo"}/g
于 2012-08-29T05:38:36.890 回答