我有一个文件夹结构,其中起始文件夹是测试。test 里面有两个文件夹。test1 和 test2,加上一堆文件。在这一堆文件以及 test1 和 test2 中的文件中都有一个词欢迎。我试过了,但没有用
sed 's/\<welcome\>//g' **/*
我究竟做错了什么?如何才能做到这一点?
这可能对您有用(GNU sed):
find test -type f -exec sed -i '/welcome/d' '{}' \;
尝试这样做(GNU sed
):
sed -i '/welcome/s/\<welcome\>//g' test/*
-i
开关修改文件,所以要小心。
如果-i
您的 Unix 不支持 switch :
for i in test/*; do
sed '/welcome/s/\<welcome\>//g' "$i" > /tmp/.sed && mv /tmp/.sed "$i"
done
sed -e 's/welcome//g' test > test2
文件 test 有几个条目,包括welcome。上面的 sed 行从测试中删除了欢迎。
你可以把它放在一个循环中。我看到 sputnick 刚刚在很大程度上回答了你的问题!:P
find . -type f|xargs perl -ni -e 'print unless(/<welcome>/)'