簡體   English   中英

使用 grep,如何將行的開頭與來自 stdin 的模式匹配

[英]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 只匹配行首的模式? 我真的很想將它保留為單絨毛。

在文件的每一行前加一個抑揚符,它就會起作用。 Circumflex 確實表示模式內的線開始。 因此,按照描述修改您的users.list ,例如

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

之后,您應該通過命令獲得所需的結果

$ get_id_command | grep -f - users.list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM