grep-f:打印图案行号
我使用的是grep-f:打印图案行号,grep,Grep,我使用的是grep-f patternfile inputfile,我想从模式文件中输出行号。例如,如果patternfile是 abc def 而inputfile是 abcx abcy defx 我想要像这样的东西 1 abcx 1 abcy 2 defx 1 abcx 1 abcy 2 defx 其中1对应于abcx和abcy从模式文件的第1行匹配的事实,2对应于defx从模式文件的第2行匹配的事实。有什么想法吗?单向使用awk。script.awk的内容: FNR == NR {
grep-f patternfile inputfile
,我想从模式文件中输出行号。例如,如果patternfile
是
abc
def
而inputfile
是
abcx
abcy
defx
我想要像这样的东西
1 abcx
1 abcy
2 defx
1 abcx
1 abcy
2 defx
其中1对应于abcx和abcy从
模式文件
的第1行匹配的事实,2对应于defx从模式文件
的第2行匹配的事实。有什么想法吗?单向使用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;
}
}
}
具有以下输出:
1 abcx
1 abcy
2 defx