我正在将部分网页从8859
移至UTF
,因此我只将UTF
包含在大多数网页上的文件中。我试图从包含该页面的页面中删除charset
定义的行。
find . -type f -exec grep -lr 'headIncluded' {} + -exec sed -i '/meta http-equiv=\"content-type\" content=\"text\/html; charset/d' {} \;
我认为这个应该可行,但我注意到它删除了headIncluded
不存在的几页中的行。对此命令有什么问题的任何建议?
答案 0 :(得分:1)
为什么不尝试:
grep -lr "headIncluded" /pathtodirectory/* | xargs sed -i '/meta http-equiv=\"content-type\" content=\"text\/html; charset/d'
答案 1 :(得分:1)
使用+
终止-exec
时,该命令将运行多个文件。如果这些文件中的任何一个包含字符串,则grep将成功。此外,从文档" -exec的这个变体总是返回true",因此grep
的返回值是无关紧要的。