给grep命令的正则表达式前面的美元符号是什么意思?

时间:2018-07-13 13:41:26

标签: grep hex

我正在研究如何在文件中grep一些不可打印的字符。我终于发现这是可行的:

grep -c $'\xEF\xBB\xBF' *.xml

但是,我在任何地方都找不到初始美元符号的含义(它必须发挥作用,因为如果将其删除,该命令将不起作用...)

我所有的搜索当然都被“如何用grep换成美元符号”,“如何逃脱美元符号”和“美元正则表达式的特殊含义”所困扰……我还没有发现任何东西在grep或regexp文档中...

有人知道它的意思(也许还有什么用吗?)

谢谢!

1 个答案:

答案 0 :(得分:2)

答案在man bash中:

  

$'string'形式的单词经过特殊处理。该单词扩展为字符串,并按ANSI C标准的规定替换反斜杠转义字符。反斜杠转义序列(如果存在)的解码方式如下:

         \a     alert (bell)
         \b     backspace
         \e
         \E     an escape character
         \f     form feed
         \n     new line
         \r     carriage return
         \t     horizontal tab
         \v     vertical tab
         \\     backslash
         \'     single quote
         \"     double quote
         \nnn   the eight-bit character whose value is the octal value nnn (one to three digits)
         \xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
         \cx    a control-x character