linux - 如果找到关键字,则删除定界符之间的模式

标签 linux bash awk grep

我有一个大小适中的文档,每行包含 5 到 25 行,所有行都由一串 === 字符分隔。

我想做的是只保留一些文本,这很好,但如果找到某个关键字,我也想删除这些 === 字符之间的所有内容,我不知所措。

在此示例中,我想删除包含 X 的 === 字符之间的所有内容,包括 A、B、F 和 G。

======================================================================

A = 1

B = 2

C = 3

D = 4

E = 5

======================================================================

A = 0

B = 10

F = 5

G = 10

X = 20

======================================================================

有人知道吗?

预期输出:

A = 1

B = 2

C = 3

D = 4

E = 5

谢谢!

最佳答案

使用 GNU AWK:awk '!/X|F|G/' ORS= RS='===+' – andlrc

关于linux - 如果找到关键字,则删除定界符之间的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38116464/

相关文章:

linux - 如何在 Linux shell 脚本中提示是/否/取消输入?

linux - Linux下如何批量复制不同文件夹下的文件?

bash - 解析 Bash 时间内置函数的输出

regex - awk 模式匹配

Linux命令行查找存储设备产品名称

linux - 依次执行各个文件夹中的程序

linux - 如何防止 linux flock(2) 使独占锁请求挨饿?

node.js - 我无法在 ubuntu 上安装 nodejs 8

c++ - git 克隆器的项目依赖

bash if 语句检测空白文本