0

如何进行字符串匹配,例如:

<meta name="keywords" content="

然后每次找到匹配项时删除整行?

我希望对当前目录及以下目录中的所有文件执行此操作。

我也是 sed 的新手。

4

2 回答 2

6

试试这个命令:

find . -type f -exec sed -i '/foobar/d' {} \;

更改foobar为您搜索的内容。

于 2013-04-02T10:36:31.637 回答
2

为了回答这个问题:“我如何递归地对所有文件执行 x?”,答案是使用find. 要使用sed删除行,您可以使用 non-portable -i,或者简单地编写脚本来重定向流。例如:

find . -exec sh -c 'f=/tmp/t.$$; 
    sed "/<meta name=\"keywords\" content=\"/d" $0 > $f; mv $f $0' {} \;
于 2013-04-02T10:38:19.313 回答