Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
grep每行只返回一个匹配项_Grep - Fatal编程技术网

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