|
用bash shell实现以下功能:
查找树型目录下(目录下还有子目录)的所有.c文件,将文件中的字符串"abc"替换为"xyz"
注意,abc可能不再一行,中间可能有空各,替换后的xyz在同一行。
也就是abc可能是
a bc
a b c
a
b
c
我现在这样写:
#!/bin/sh
echo $1
for af in `find $1 -name '*.c' -print`; do
cat $af|sed -e 's/[ ]*a[ ]*b[ ]*c/xyz/g' > /tmp/a.c
cp /tmp/a.c $af;
done
只能替换a b c这样在一行的。不在一行的,没法替换了。
还有如果是制表符,也替换不了,咋弄啊? |
|