grep每行只返回一个匹配项

时间:2017-04-06 15:08:08

标签: grep

示例文件:

foobar random text foobar random text foobar
text
text
text

如果我使用grep并搜索单词foobar,我怎样才能阻止grep将第一行返回3次,因为它发现了3次foobar ?我想要的是每行只有一个回报,即使在该行上多次找到该词

1 个答案:

答案 0 :(得分:0)

简单 awk 替代方案:

awk '/\<foobar\>/{print NR,"foobar"}' file

输出(用于示例输入):

1 foobar

\<\>表示字边界

NR - 包含当前行号


使用 perl

perl -ne 'print $.," ",$1,"\n" if /\b(foobar)\b/' file

输出:

1 foobar