这真是一个黑暗的角落......
大约5年前,我有同样的怀疑.我提交了bug并与gawk的开发人员交谈,最后明确了.这是一个" 特色 ".
这是门票:https://lists.gnu.org/archive/html/bug-gawk/2013-03/msg00009.html
split(str, array, magic)
Run Code Online (Sandbox Code Playgroud)
用于magic:
当你使用非空字符串(引用"")时"...",awk将检查字符串的长度,如果它是单个字符串,它将被用作文字字符串(它们称之为分隔符).但是,如果它长于1,它将被视为动态正则表达式.
当你使用静态正则表达式,这意味着,/.../无论表达式有多长,它都将被视为正则表达式.
那是:
"." - literal "." (period)
"[" - literal "["
"{" - literal "{"
".*" - regex
/./ - regex
/whatever/ -regex
Run Code Online (Sandbox Code Playgroud)
如果你想要awk .(period)作为正则表达式元字符处理,你应该使用split(foo,bar,/./)But如果你被任何一个字符分割,你可能有空数组,如果这是你真正想要的.