我正在尝试删除两个模式之间的一些JavaScript。这些模式是:
/* React App Start */
还有
/* React App End */
我可以使用以下代码成功删除JavaScript:
sed -i -e '/\/\* React App Start \*\//,/\/\* React App End \*\//d' views/layouts/index.html
然而,这也删除了我不想要的模式。因此,我尝试了以下方法,但它只删除了一些JavaScript:
sed -i -e '/\/\* React App Start \*\//,/\/\* React App End \*\//{//!d;}' views/layouts/index.hml
有人能帮忙吗?我用的是Mac。
3条答案
按热度按时间yqkkidmi1#
使用
ed
可能比使用sed
更幸运(假设Mac自带它);因为它从一开始就是为编辑文件而设计的,而不是像sed
这样的文本流,所以它允许你做一些事情,比如从一个地址向后搜索,这在这里很方便:将d删除与第一个模式匹配的行之后一行到与第二个模式匹配的行之前一行范围内的文件,然后将修改后的文件写回磁盘。
uujelgoq2#
为了让这个工作,我必须在最后一个模式之前输入一个新行。
roqulrg33#
命令分组...