如何进行字符串匹配,例如:
<meta name="keywords" content="
然后每次找到匹配项时删除整行?
我希望对当前目录及以下的所有文件执行此操作。
我也是sed的新手。
答案 0 :(得分:5)
尝试此命令:
find . -type f -exec sed -i '/foobar/d' {} \;
将foobar
更改为您搜索的内容。
答案 1 :(得分:2)
回答问题:“我如何递归地对所有文件执行x?”,答案是使用find
。要使用sed
删除行,您可以使用非可移植-i
,也可以只编写脚本来重定向流。例如:
find . -exec sh -c 'f=/tmp/t.$$;
sed "/<meta name=\"keywords\" content=\"/d" $0 > $f; mv $f $0' {} \;