TESTヘッダーにのみ表示され、FIRST、SECOND、またはTHIRDヘッダーには表示されない変数を検索するPerlスクリプトを作成したいと思います。したがって、ファイルにはTESTヘッダーの前にN個の変数がありますが、TESTヘッダーの後ろにある変数を一致させたいと思います。 TESTタイトルに印刷する変数がない場合variable not exist in first TEST
(または2回目のテストまたは3回目のテスト)。
以下のファイルがあります。
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