相关疑难解决方法(0)

这是 BSD Awk 的记录行为,还是错误?

显然,包含字符类的 BSD Awk 中的括号表达式将忽略字符类之后的任何其他字符:

MacOS $ cat file.txt
_
-
.
a
B
8
:
;
@
~
,
MacOS $ awk '/[@~.[:alnum:]:;-]/' file.txt 
.
a
B
8
@
~
MacOS $ awk '/[-;:@~.[:alnum:]]/' file.txt 
-
.
a
B
8
:
;
@
~
MacOS $ awk '/[^@~.[:alnum:]:;-]/' file.txt 
_
-
:
;
,
MacOS $ awk '/[^-;:@~.[:alnum:]]/' file.txt 
_
,
MacOS $ 
Run Code Online (Sandbox Code Playgroud)

在 GNU Awk(在 Ubuntu 16.04 上显示)上,行为是不同的;括号表达式中的其他字符的处理方式相同,无论它们是在字符类之前还是之后:

Linux $ cat file.txt
_
-
.
a
B
8
: …
Run Code Online (Sandbox Code Playgroud)

bsd awk bugs macos

12
推荐指数
1
解决办法
482
查看次数

标签 统计

awk ×1

bsd ×1

bugs ×1

macos ×1