linux|awk|shell脚本 block 删除

标签 linux shell awk gawk

我的输入文件有如下 block 。请帮助我使用 awk 或 sed 删除 block 及其内容

[abc]  
para1=123  
para2=456  
para3=111  

[pqr]  
para1=333    
para2=765    
para3=1345    

[xyz]    
para1=888    
para2=236    
para3=964    

现在如何完全删除 block 及其参数。请帮助我使用 awk 命令实现此目的。提前致谢

最佳答案

您可以使用 RS 来分割 block ,(注意:NR>1 因为 awk 在开始时生成一个空 block )

awk -vRS='[' -v remove="pqr" '
   NR>1 && $0 !~ "^"remove"]" {printf "%s", "["$0; }
' file

你明白了,

[abc]
para1=123
para2=456
para3=111

[xyz]
para1=888
para2=236
para3=964

关于linux|awk|shell脚本 block 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973526/

相关文章:

linux - 为什么 tar -cf ${PWD}.bz2 不产生任何输出?

linux - 如何在 Linux 中使用 grep 找出一行中的单词?

linux - Grep 用于文件中的多个模式

linux - 运行带有 --quiet 选项标志的 rpmbuild 命令会产生大量调试信息

linux - Neo4j:通过Dockerfile中的Shell脚本将文件夹复制到/data目录

linux - 用awk解析/proc/pid/smaps

php - 显示子域根目录下域文件夹的内容

python - 如何在node.js中实现这个python代码片段

shell - 使用 awk 检查两个日期

regex - 使用 sed/awk 匹配 n 个空格后的单词