我尝试使用awk
在两个模式之间打印线条,而pattern2 也匹配 pattern1。并且 pattern1 线也应该被打印出来。
例如来源
package AAA
aaa
bbb
ccc
package BBB
ddd
eee
package CCC
fff
ggg
hhh
iii
package DDD
jjj
应该有一个输出
package BBB
ddd
eee
其中pattern1 是package BBB
,pattern2 是package \w*
。请注意,这CCC
不是一个已知值,因此无法逐字匹配。
在这种情况下,@scaiawk '/abc/{a=1}/mno/{print;a=0}a' file
和 @fedorqui 都不awk '/abc/{a=1} a; /mno/{a=0}' file
适合我。
最后,我设法解决了awk '/package BBB/{flag=1;print;next}/package \w*/{flag=0}flag' file
,哈哈
更多的努力导致awk '/package BBB/{flag=1;print;next}flag;/package \w*/{flag=0}' file
, 也打印 pattern2 线,也就是说,
package BBB
ddd
eee
package CCC