首页 > 解决方案 > 使用 find 和 sed 查找和替换

问题描述

这篇文章分享了如何在命令行中从文件中删除 html 注释。

sed -e :a -re 's/<!--.*?-->//g;/<!--/N;//ba' file.html

我正在尝试扩展它以从目录中的所有文件中删除 html 注释,但我很难。我的一些尝试包括:

 find /my/folder/plus/subfolders -name "*.html" -exec "sed -e :a -re 's/<!--.*?-->//g;/<!--/N;//ba'"

基于,我也尝试过这种方法:

find /my/folder/plus/subfolders -name "*.html" -exec sed -i s/<!--.*?-->//g;/<!--/N;//ba {} +

我哪里错了?

标签: sedreplace

解决方案


您只需要添加就地选项-i并将文件更改为{}.

find /my/folder/plus/subfolders -name "*.html" -exec sed -i -e :a -re 's/<!--.*?-->//g;/<!--/N;//ba' {} +

推荐阅读