我在这里阅读了有关 Awk 拆分行为的信息:
[...] split函数的fs参数(参见字符串函数)应被解释为扩展的正则表达式。这些可以是ERE标记或任意表达式,并且应以与or运算符 右侧相同的方式进行解释。
~
!~
和:
如果右侧操作数是词法标记 ERE以外的任何表达式,则表达式的字符串值应解释为扩展的正则表达式,包括上述转义约定。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html#tag_20_06_13_04
但是我注意到一个意想不到的结果,使用这段代码:
BEGIN {
print split("te.st", q, ".")
}
我希望 the.
代表任何字符,并且结果为6
. 但是我所有的测试都返回了2
。运行这段代码给出了预期的6
:
BEGIN {
print split("te.st", q, /./)
}
经测试:
- 呆呆
- gawk --posix
- 1.3.4 版本
- 1.3.3 版本
- nawk(原始 awk)
我误解了文档还是这是一个错误?