linux - 如何用 sed 替换文件中的多行注释

标签 linux sed awk

我有各种文件 php html xml,其中 copyright 通知包含在 top 中或在 2-3 行之后像这样顶

/**
 * Copyright (c)  2014
 * All rights reserved.
 * bla bla many lines like this
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

现在我想从所有文件中删除所有文本。

如何使用 sed 删除

我只知道基本的 sed 但我不知道如何处理多行

最佳答案

$ cat file
1
2
/**
 * Copyright (c)  2014
 * All rights reserved.
 * bla bla many lines like this
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
3
4
/* and here is another comment
 * you presumably want to keep
 */
5
6

$ awk '/^\/\*/{c++} c!=1; /^ \*\//{c++}' file
1
2
3
4
/* and here is another comment
 * you presumably want to keep
 */
5
6

关于linux - 如何用 sed 替换文件中的多行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215764/

相关文章:

bash - 如何使用 sed/awk 替换以逗号分隔的字符串中的第 n 列/字段?

php - 在 SLES-12-64 位 LINUX 上编译 php-5.2.8 时未找到配置 : error: png. h

linux - Ansible sudo 不起作用

linux - Linux 中的退出命令文件在哪里?

linux - 查找并删除符合条件的行

regex - 如何使用正则表达式在 Bash 中提取部分字符串

sed/awk 双倍空间文件

sed - 如果找到,如何根据模式获取特定行

bash - 在命令替换中转义 AWK 中的反斜杠

Linux 和 Primesense