1

私が使用grep -f patternfile inputfileしていて、パターンファイルから行番号を出力したいです。たとえばpatternfile

abc
def

そしてinputfile_

abcx
abcy
defx

私は何かが欲しい

1 abcx
1 abcy
2 defx

ここで、1 は の 1 行目で abcx と abcy が一致しpatternfileていることに対応し、2 は の 2 行目で defx が一致していることに対応していpatternfileます。何か案は?

4

1 に答える 1

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
于 2012-08-15T09:02:17.007 に答える