为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

慕标琳琳 2019-12-25 14:28:41

我有这些:


$ 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获得想要的东西吗?


查看完整描述

3 回答

?
拉丁的传说

只需指定regexp锚。


grep '^ABB\.log$' a.tmp


查看完整回答
反对 回复 2019-12-25
?
喵喵时光机

grep -Fx ABB.log a.tmp

从grep手册页:


-F,--fixed-strings将

PATTERN解释为固定字符串的(列表)

-x,--

line -regexp仅选择与整行完全匹配的那些匹配项。


查看完整回答
反对 回复 2019-12-25
?
慕的地6264312

如果只有一个前导或尾随空格,则大多数建议将失败,如果手动编辑文件将很重要。在这种情况下,这将使其不那么容易受到攻击:


grep '^[[:blank:]]*ABB\.log[[:blank:]]*$' a.tmp

Shell中的一个简单的while-read循环将隐式地执行此操作:


while read file

do 

  case $file in

    (ABB.log) printf "%s\n" "$file"

  esac

done < a.tmp


查看完整回答
反对 回复 2019-12-25

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信