2012-08-15 58 views
1

我正在使用grep -f patternfile inputfile,我想從圖案文件中輸出行號。例如,如果patternfilegrep -f:印刷圖案行號

abc 
def 

inputfile

abcx 
abcy 
defx 

我想是這樣

1 abcx 
1 abcy 
2 defx 

,其中1對應於ABCX和abcy的事實是,從1號線的匹配patternfile,以及2對應於defx與patternfile的第2行匹配的事實。有任何想法嗎?

回答

0

單向使用awk。的script.awk內容:

FNR == NR { 
     pattern[ FNR ] = $1; 
     next; 
} 

FNR < NR { 
     if (FNR == 1) { 
       l = length(pattern); 
     } 
     for (i = 1; i <= l; i++) { 
       if ($0 ~ pattern[i]) { 
         printf "%d %s\n", i, $0; 
         break; 
       } 
     } 
} 

運行它想:

awk -f script.awk patternfile inputfile 

有了以下的輸出:

1 abcx 
1 abcy 
2 defx