在AWK中检查大写,范围[A-Z]不起作用

时间:2014-02-03 16:53:38

标签: regex bash awk

我有以下bash脚本:

cat test | awk '/^[A-Z]/ {print NF}'

我们假设测试内容如下:

This one yes
this one no
This one yes
this one no

原则上它应该打印第一行和第三行的字段数,因为我正在寻找以大写字母开头的行。但是,结果是打印文件中所有行的字段数。 如果我尝试使用相同的正则表达式的grep,结果就是我期望的结果。

另外,如果不是放[A-Z],而是写[[:upper:]],脚本可以完美地运行。

我的问题是:为什么在第一种情况下它不起作用?

1 个答案:

答案 0 :(得分:4)

这是您的区域设置。谷歌语言环境。设置LC_ALL = C得到一个普通的,但使用字符类是正确的方法。