1

我有一个文件夹结构,其中起始文件夹是测试。test 里面有两个文件夹。test1 和 test2,加上一堆文件。在这一堆文件以及 test1 和 test2 中的文件中都有一个词欢迎。我试过了,但没有用

sed 's/\<welcome\>//g' **/*

我究竟做错了什么?如何才能做到这一点?

4

4 回答 4

4

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

find test -type f -exec sed -i '/welcome/d' '{}' \;
于 2012-10-23T00:21:38.573 回答
1

尝试这样做(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
于 2012-10-22T22:50:06.497 回答
1

sed -e 's/welcome//g' test > test2

文件 test 有几个条目,包括welcome。上面的 sed 行从测试中删除了欢迎。

你可以把它放在一个循环中。我看到 sputnick 刚刚在很大程度上回答了你的问题!:P

于 2012-10-22T22:55:35.520 回答
1
find . -type f|xargs perl -ni -e 'print unless(/<welcome>/)'
于 2012-10-23T12:31:23.293 回答