如何使grep仅在整行匹配时才匹配?

我有这些:


$ cat a.tmp

ABB.log

ABB.log.122

ABB.log.123

我想找到一个完全匹配的ABB.log。


但是当我这样做


$ grep -w ABB.log a.tmp

ABB.log

ABB.log.122

ABB.log.123

它显示了所有这些。


我可以使用grep获得想要的东西吗?


慕标琳琳
浏览 856回答 3
3回答

拉丁的传说

只需指定regexp锚。grep '^ABB\.log$' a.tmp

喵喵时光机

grep -Fx ABB.log a.tmp从grep手册页:-F,--fixed-strings将PATTERN解释为固定字符串的(列表)-x,--line -regexp仅选择与整行完全匹配的那些匹配项。

慕的地6264312

如果只有一个前导或尾随空格,则大多数建议将失败,如果手动编辑文件将很重要。在这种情况下,这将使其不那么容易受到攻击:grep '^[[:blank:]]*ABB\.log[[:blank:]]*$' a.tmpShell中的一个简单的while-read循环将隐式地执行此操作:while read filedo&nbsp;&nbsp; case $file in&nbsp; &nbsp; (ABB.log) printf "%s\n" "$file"&nbsp; esacdone < a.tmp
打开App,查看更多内容
随时随地看视频慕课网APP