匹配非ascii字符而不会重复出现在外部二进制文件中

时间:2012-12-01 23:43:25

标签: regex linux bash non-ascii-characters

假设我在grep中有以下正则表达式:

grep -E 'head \x1E tail'

我可以使用其个人转义码grep\x了解非ascii字符。

我可以在不调用任何外部程序的情况下对Bash执行相同的操作吗? Bash提供了3种匹配正则表达式的模式:

  1. 普通路径名扩展
  2. extglob路径名扩展
  3. [[string = ~regex]]
  4. 这些似乎都不支持UTF转义码,也不支持Bash本身。

1 个答案:

答案 0 :(得分:1)

在bash中,您可以使用ANSI引用的字符串:

$ x=éclair
$ [[ $x =~ $'\xc3\xa9' ]] && echo matched
matched

请注意,您必须指定字符的UTF-8编码,因为ANSI引用的字符串不接受任意Unicode代码点。