【问题标题】:Grep: Single vs Double QuotesGrep:单引号和双引号
【发布时间】:2017-09-17 20:05:13
【问题描述】:

我试图了解这些特殊情况下单引号和双引号的区别:

egrep '^Za(za)+!$' *

返回Zaza! 和Zazazazaza!(这是我想要的)

egrep "^Za(za)+!$" *

返回我上面提到的那些,还有Zaaazazaaaa!、Zaza、Zazaza!Zazaza!、Za!

据我了解,双引号考虑了+等符号的含义,那么为什么双引号不起作用?

【问题讨论】:

  • 如果您不使用历史扩展并且不想要这样的惊喜,请使用set +H 将其关闭。要使其自动关闭,您可能需要将此命令放在~/.bashrc。

标签: regex bash terminal


【解决方案1】:

!$ 是一个history expansion,它从上一个命令中选择最后一个单词(因此结果实际上取决于另一个命令!)。这些正在处理inside double quotes but not inside single quotes。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 2013-02-16
    • 2013-08-25
    • 2011-01-23
    相关资源
    最近更新 更多