我想编写一个 Perl 脚本来查找仅出现在 TEST 标题中的变量,而不是出现在 FIRST、SECOND 或 THIRD 标题中的变量。所以在 TEST 标题之前的文件中有 N 个变量;但我想匹配 TEST 标题后面的变量。如果 TEST 标题没有需要打印的变量variable not exist in first TEST
(或第二次测试或者第三次测试)。
我有一个如下所示的文件。
FIRST
there is a variable one
SECOND
there is second variable
THIRD
there is third variable
FOUR
xxx
xxx
FIVE
variable
xxx
TEST1
firstline 001
secondline 002
thirdvariable line 003
TEST2
firstline 001
secondline 002
thirdline 003
TEST3
firstline 001
secondline 002
thirdvariable line 003
答案1
我会用awk
这个(因为我知道awk
乐趣!)。
awk -vRS='TEST[[:digit:]]' 'BEGIN{rs=RS} NF>1 && $1 ~ rs{ print $1":";$1=""; print $0;}
NF==1{print "variable not exist in: "$1}' RS='' infile
对于给定的示例数据,这将为您提供如下所示的输出。
TEST1:
firstline 001 secondline 002 thirdvariable line 003
TEST2:
firstline 001 secondline 002 thirdline 003
TEST3:
firstline 001 secondline 002 thirdvariable line 003
variable not exist in: TEST4
variable not exist in: TEST5