【发布时间】:2021-05-31 08:11:47
【问题描述】:
当我在 BSD grep 的正则表达式字符范围中包含 NULL 字符 (\x00) 时,结果出乎意料:没有字符匹配。为什么会这样?
这是一个例子:
$ echo 'ABCabc<>/ă' | grep -o [$'\x00'-$'\x7f']
这里我希望直到最后一个字符之前的所有字符都匹配,但是结果是没有输出(没有匹配)。
或者,当我从 \x01 开始字符范围时,它按预期工作:
$ echo 'ABCabc<>/ă' | grep -o [$'\x01'-$'\x7f']
A
B
C
a
b
c
<
>
/
另外,这是我的 grep 和 BASH 版本:
$ grep --version
grep (BSD grep) 2.5.1-FreeBSD
$ echo $BASH_VERSION
3.2.57(1)-release
【问题讨论】:
标签: bash grep hex bsd null-character