我在子文件夹中有几个html文件,它们有一个冗余链接,如:
<link rel="stylesheet" href="../demos.css">
我正在尝试使用linux中的以下命令从所有html文件中删除此行:
find -name '*.html' -exec sed --in-place=.bak 'demos.css' "{}" ;
但是这给了我以下错误:
find: missing argument to `-exec'
是的,我当然已经检查了与此相关的Stackoverflow上的所有解决方案,但大多数都是关于单个文件,其余的没有帮助。这段代码我做错了什么?
答案 0 :(得分:2)
find
缺少起始路径,sed
缺少d
命令,您需要在find
命令中转义分号:
find . -name '*.html' -exec sed -i.bak '/demos\.css/d' '{}' \;
或更好:
find . -name '*.html' -exec sed -i.bak '/demos\.css/d' '{}' +
答案 1 :(得分:0)
for i in `find /www/htmls/ -name "*.html" 2>/dev/null`
do
sed -i '/demos\.css/d' "$i"
done
答案 2 :(得分:0)
for i in `find /www/htmls/ -name "*.html" 2>/dev/null`
do
sed -i 's/^demos.css.*//' "$i"
done