使用 grep,如何将行首与标准输入中的模式匹配

Using grep, how to match beginning of line with pattern from stdin

我有一个打印一系列数字的单行:

124
132
186

然后我将此输出通过管道传输到 grep 以将这些数字与另一个文件中行的开头匹配,但有时该行中的第二个数字与其中一个模式匹配,我得到一个不正确的匹配,如下所示:

$ get_id_command | grep -f - users.list
124 => 3456, Charles Charmichael, ccharmichael
132 => 2498, Sarah Walker, swalker
186 => 8934, John Casey, jcasey
240 => 1245, Morgan Grimes, mgrimes

我需要哪些选项才能让 grep 仅匹配行首的模式?我真的很想把它作为一个 linter。

在文件的每一行前加一个抑扬符,这样就可以了。 Circumflex 确实指示模式中的行开始。因此,请按照说明修改您的 users.list,例如

sed -Ei 's|(.*)|^|' users.list

之后你应该通过你的命令得到想要的结果

$ get_id_command | grep -f - users.list