我在包含字符串 "exact match" 的文件中有两次出现:
this is an 'exact match'
this is 'another exact match' line
如果我这样做,grep -w 'exact match' file.txt
我会收到这两种情况。
我只想收到第一次出现(完全匹配)。
我也试过:
grep -e '\bexact match\b' file.txt
grep -e '\<exact match\>' file.txt
但它们都会产生不希望的两种情况。
使用 grep 执行此操作的正确方法是什么?
如果要匹配单引号,请在模式中包含这些:
请注意,我在模式周围使用双引号,因为单引号字符串永远不能包含单引号。由于查询字符串是双引号,因此字符串中的任何 shell 变量或命令替换都会被扩展。
另一种方式:
这仅在单引号周围使用双引号,同时对
exact match
字符串进行单引号。字符串中的 Shell 变量等不会被扩展。您还可以使用
\''exact match'\'
单引号来对字符串进行单引号并“转义”两边的文字单引号,但我个人认为它看起来有点难看。如果只想提取结果的第一个并发,这样就足够了:
-m指定并发数,1表示只显示第一个。