![sed 在两个模式之间选择](https://linux22.com/image/109777/sed%20%E5%9C%A8%E4%B8%A4%E4%B8%AA%E6%A8%A1%E5%BC%8F%E4%B9%8B%E9%97%B4%E9%80%89%E6%8B%A9.png)
First line NC1.c
/* comments
second line nc1.c
*/
*/
adsf
asfd
我想匹配“/”之间的行“还有最后一个”/”并删除,结果是
First line NC1.c
adsf
asfd
命令应该怎么写呢?
答案1
像这样的事情似乎没问题:
$ sed '/\/\*/,/\*\//d; /\*\//d; /\/\*/d' file4
First line NC1.c
adsf
asfd
对于就地编辑,您可以使用 sed -i
此 sed 执行三个单独的删除:
/\/\*/,/\*\//d
= 模式 /* 和 */ 之间的行范围(用 \ 转义)
/\*\//d
= 包含 */ 的行(转义)
/\/\*/d
= 包含 /* 的行(转义)