我有以下文件夹结构 -
Foo/
y.c
Bar/
a.c
Baz/
b.c
Pie/
m.c
Ham/
x.c
我只需要做的就是替换Foo /目录中的Alice()
的每个实例,这是我当前的目录并将其转换为Bob()
。在这个微不足道的问题上,我遇到了最艰难的时刻。
我尝试了以下的变体:
find ./ -type f -print0 | xargs -0 sed -i ’s/Alice\(\)/Bob\(\)/g’
find ./ -type f -exec sed -i 's/Alice\(\)/Bob\(\)/g' '{}' \;
sed 's/Alice\(\)/Bob\(\)/g ' `grep -l -R 'Alice\(\)' .`
使用exec
代替xargs
,似乎遇到了错误,如:
Can't do inplace edit: . is not a regular file.
sed: RE error: illegal byte sequence
等等。有人可以帮帮我吗?
答案 0 :(得分:1)
Mac内置BSD sed
与GNU /usr/bin/sed -i '' 's/foo/bar/g' input.txt
不同。
''
注意:需要零长度/usr/local/bin/sed -i 's/foo/bar/g' input.txt
进行就地编辑。
<SolidColorBrush x:Key="ColorMain">#FF222222</SolidColorBrush>