grep每行只返回一个匹配项
示例文件:grep每行只返回一个匹配项,grep,Grep,示例文件: foobar random text foobar random text foobar text text text 如果我使用grep并搜索单词foobar,我如何防止grep返回我的第一行3次,因为它找到了3次foobar?我想要的是每行只返回一次,即使该单词在该行中被多次找到Simpleawk备选: awk '/\<foobar\>/{print NR,"foobar"}' file \表示单词边界 NR-包含当前行号 使用perl: perl -ne
foobar random text foobar random text foobar
text
text
text
如果我使用grep
并搜索单词foobar
,我如何防止grep
返回我的第一行3次,因为它找到了3次foobar
?我想要的是每行只返回一次,即使该单词在该行中被多次找到Simpleawk备选:
awk '/\<foobar\>/{print NR,"foobar"}' file
\
表示单词边界
NR
-包含当前行号
使用perl:
perl -ne 'print $.," ",$1,"\n" if /\b(foobar)\b/' file
输出:
1 foobar
你用什么命令
grep-o
?我使用grep-in
,忽略大小写并获取找到单词的行号,但您的示例显示了提取的文本。你想要的是搜索词还是整行?我想要整行。在我的例子中,我说它发现了3次foobar,并不是说它正在返回它。每次我找到正确的单词,我都会打印整行文字(这就是为什么我只需要在同一行上打印一次)
1 foobar