根据内容从文件中删除部分
Remove section from file based on its content
如何使用 bash 删除以下文件中包含 config B2
的配置部分?使用 sed
或 awk
或类似的任何快速解决方案?如果有帮助,不同的部分用空行分隔。
输入文件:
section X
config A1
config A2
config A3
section Y
config A1
config B2
config A3
section Z
config C1
config C2
config A3
预期输出文件:
section X
option A1
option A2
option A3
section Z
option C1
option C2
option C3
使用 awk:
awk 'BEGIN { RS="section" } [=10=] !~ /config B2/ { print RS[=10=] }' file
在开始块中将记录分隔符设置为“section”。然后当记录不包含“config B2”时,打印记录分隔符后跟记录。
如何使用 bash 删除以下文件中包含 config B2
的配置部分?使用 sed
或 awk
或类似的任何快速解决方案?如果有帮助,不同的部分用空行分隔。
输入文件:
section X
config A1
config A2
config A3
section Y
config A1
config B2
config A3
section Z
config C1
config C2
config A3
预期输出文件:
section X
option A1
option A2
option A3
section Z
option C1
option C2
option C3
使用 awk:
awk 'BEGIN { RS="section" } [=10=] !~ /config B2/ { print RS[=10=] }' file
在开始块中将记录分隔符设置为“section”。然后当记录不包含“config B2”时,打印记录分隔符后跟记录。