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

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

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

慕标琳琳 2019-12-25 14:28:41
我有这些:$ cat a.tmpABB.logABB.log.122ABB.log.123我想找到一个完全匹配的ABB.log。但是当我这样做$ grep -w ABB.log a.tmpABB.logABB.log.122ABB.log.123它显示了所有这些。我可以使用grep获得想要的东西吗?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

只需指定regexp锚。


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


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

TA贡献1846条经验 获得超7个赞

grep -Fx ABB.log a.tmp

从grep手册页:


-F,--fixed-strings将

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

-x,--

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


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

TA贡献1817条经验 获得超6个赞

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


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
  • 3 回答
  • 0 关注
  • 903 浏览
慕课专栏
更多

添加回答

举报

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