我有以下 bash 脚本:
cat test | awk '/^[A-Z]/ {print NF}'
Run Code Online (Sandbox Code Playgroud)
假设测试内容如下:
This one yes
this one no
This one yes
this one no
Run Code Online (Sandbox Code Playgroud)
原则上它应该打印第一行和第三行的字段数,因为我正在寻找以大写字符开头的行。但是,结果是打印文件中所有行的字段数。如果我尝试使用相同的正则表达式 grep,结果就是我所期望的。
另外,如果我不写 [AZ],而是写 [[:upper:]] ,则脚本可以完美运行。
我的问题是:为什么在第一种情况下它不起作用?