我想删除shell脚本中模式和空行之间的所有行,例如
# a simple host tree
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
load=true
[localhost.localdomain2]
address 127.0.1.1
use_node_name yes
[localhost.localdomain3]
address 127.0.1.1
use_node_name yes
#
我想在空行之前删除[localhost.localdomain]
和以下行。
答案 0 :(得分:1)
这样做:
awk '/\[localhost.localdomain\]/ {f=1} !f; !NF {f=0}' file
# a simple host tree
[localhost.localdomain2]
address 127.0.1.1
use_node_name yes
[localhost.localdomain3]
address 127.0.1.1
use_node_name yes
#
或者您可以更改RS
,因此awk
适用于以下块:
awk -v RS=[ '!/localhost.localdomain\]/ {print (NR>1?RT:"")$0}' file
# a simple host tree
[localhost.localdomain2]
address 127.0.1.1
use_node_name yes
localhost.localdomain3]
address 127.0.1.1
use_node_name yes
#