これは私のgrep検索です
grep 'Invoker_Slark*' true_pairscore.txt
ただし、行Invoker_Slardar
を返します。ファイルにInvoker_Slark
が含まれていても。何故ですか?
その理由は、Invoker_Slark*
が正規表現と見なされ、k*
が「kの出現が0回以上」を意味するためです。
これは、*
が0文字以上を意味するシェルグロブパターンとは異なります。
行の任意の場所でInvoker_Slark
を検索するには、次のものが必要です。
grep 'Invoker_Slark' true_pairscore.txt
または
grep -x '.*Invoker_Slark.*' true_pairscore.txt
検索文字列を行の先頭に配置する必要がある場合は、次のように変更する必要があります。
grep '^Invoker_Slark' true_pairscore.txt
または
grep -x 'Invoker_Slark.*' true_pairscore.txt