Grep 搜索返回不同的行

Grep 搜索返回不同的行

这是我的 grep 搜索

 grep 'Invoker_Slark*' true_pairscore.txt

但它返回该行Invoker_Slardar。即使该文件包含Invoker_Slark.这是为什么?

答案1

原因是它Invoker_Slark*被认为是正则表达式,其中的k*意思是:“k 出现零次或多次”

这与 shell 通配模式不同,后者*表示 0 个或多个字符。

要搜索Invoker_Slark该行中的任何位置,您需要:

  1. grep 'Invoker_Slark' true_pairscore.txt或者

  2. grep -x '.*Invoker_Slark.*' true_pairscore.txt

如果搜索字符串必须位于行的开头,则必须更改为:

  1. grep '^Invoker_Slark' true_pairscore.txt或者

  2. grep -x 'Invoker_Slark.*' true_pairscore.txt

相关内容