如何编写 Perl 脚本来查找文件中的字符串?

如何编写 Perl 脚本来查找文件中的字符串?

我想编写一个 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

相关内容