【发布时间】:2011-04-18 11:45:09
【问题描述】:
我想删除目录中所有文件中(包括)两个字符串之间的所有文本。例如,文件如下所示:
flag
bla bla bal
bla bla bla
endflag
etc..
这就是我用 sed 做的事情:
sed -i "s:flag.*endflag::m" *
但是,'m' 选项不是 sed 的一部分。关于这个主题的所有其他 Stack Overflow 线程都使用 perl、awk 或 sed 包装器来完成此操作。没有办法告诉 sed 匹配换行符吗?
【问题讨论】:
-
sed multiline replace 的可能重复项
-
Colin:该线程对我正在尝试做的事情有部分解决方案: perl -ne 'print if !( m@^$@ )' .aspx *.htm */.htm 但这只是将它打印到标准输出。如何在每个文件中使用它来替换?
-
如果有工具可以让事情变得简单,为什么不使用它们。?为什么一定要坚持sed?