我有以下bash脚本:
cat test | awk '/^[A-Z]/ {print NF}'
让我们假设测试的内容如下:
This one yes
this one no
This one yes
this one no
原则上,它应该打印第一线和第三行的字段数量,因为我正在寻找在上案中以角色开头的行。但是,结果是打印了文件中所有行的字段数量。如果我尝试使用GREP,则具有相同的正则表达式,结果就是我所期望的。
此外,如果不是放置[a-z],我会写[[:upper:]]脚本完美地发挥作用。
我的问题是:为什么在第一种情况下它不起作用?
这是您的语言环境设置。Google语言环境。设置LC_ALL = C获取常见的方法,但使用字符类是正确的方法。