假设我在grep
中有以下正则表达式:
grep -E 'head x1E tail'
我可以使用其个人转义码x
grep
知道非ASCII字符。
我可以在不调用任何外部程序的情况下对 Bash 执行相同的操作吗?Bash 提供了 3 种匹配正则表达式的模式:
- 普通路径名扩展
- extglob 路径名扩展
- [ 字符串 =~ 正则表达式 ]]
这些似乎都不支持UTF转义代码,也不支持Bash本身。
在 bash 中,您可以使用 ANSI 引号字符串:
$ x=éclair
$ [[ $x =~ $'xc3xa9' ]] && echo matched
matched
请注意,您必须指定字符的 UTF-8 编码,因为 ANSI 引号字符串不接受任意 Unicode 代码点。