我正在使用grep -f patternfile inputfile
,我想从模式文件中输出行号。例如,如果patternfile
是
abc
def
和inputfile
是
abcx
abcy
defx
我想要像
这样的东西1 abcx
1 abcy
2 defx
其中1对应于abcx和abcy与patternfile
的第1行匹配的事实,2对应于defx与patternfile
的第2行匹配的事实。有什么想法吗?
答案 0 :(得分: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