使用grep,如何将行首与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只匹配行开头的模式需要什么选项?我真的很想把这个留作一个门楣。

在文件的每一行加上扬抑符,它就会起作用。扬抑符表示图案中的线条起点。因此,按照说明修改users.list,例如

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

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

$ get_id_command | grep -f - users.list

最新更新