如果匹配,我需要匹配某些圖案我需要打印接下來的幾個單詞..我只有三個這樣的條件匹配......但我需要只打印滿足第一個條件後出現的單詞.. iez ..awk:匹配特定圖案後的圖案和圖案旁邊的打印字
雖然在LLL SSS之前我有TTT,但我只需要打印LLL SSS到AAA RRR之後的那些,而當我遇到LLL SSS需要做同樣的事情,我試過聲明一個awk標誌變量,但它似乎不起作用。請幫助我。
var1="LLL";var2="SSS";var3="TTT";var4="AAA";var5="RRR";
awk -v flag=1 '{
for (m=1;m<=NF;m++)
if($m~m/'$var1'/ && $(m+1)~/'$var2'/)
print "ABCD: ", $(m+2),$(m+3),$(m+4)
{flag=0};
else {
if {flag==0 && $m~/'var3'/)
print "EFG : ", $(m+1);
else {
if (flag==0 && $m~/'$var4'/ && $(m+1)~/'var5'/)
print "HIJ: ",$(m+2),$(m+3)
{flag=1};
}
}
}
}' fliename
我的文件是這樣的:
AAA RRR H I
DDDD OOO HI J UGC RR
TTT YYY
LLLLL IIIIII
LLL SSS A B C D
N
DDDD TTT EFG
BBB AAA RRR J K
HHHHHH RRRRRR
LLL SSS E H G H
N
DDDD TTT EFG
UUUUU BBB AAA RRR J K
什麼是你期望的輸出? –
擁有一個名爲'flag'的標誌就像擁有一個孩子並命名爲'kid'。來吧...還有如何縮進? –
Andalso,你的代碼語法沒有多大意義。即使編輯也很難。 – Rubens