请注意,我在AWK中需要这个答案.
如何从某些awk变量中删除所有小写字符?我试过调用gsub:
gsub(/[a-z]+/,"",varName);
不幸的是,这删除了整个字符串,好像awk无法区分大小写的区别.我可以使用一些我不知道的正则表达式吗?
编辑:确认,awk没有看到小写和大写字符之间的区别.
示例1(这里将使用字母f来更好地理解结果):
varName="CHRFProtocol";
gsub(/[a-z]/,"f",varName);
Run Code Online (Sandbox Code Playgroud)
结果: ffffffffffff
示例2(同样,这里将使用字母f来更好地理解结果):
varName="CHRFProtocol";
gsub(/[A-Z]/,"f",varName);
Run Code Online (Sandbox Code Playgroud)
结果: ffffffffffff
这合法吗?在做什么?
您的区域设置正在妨碍您.试试这个:
LC_ALL=C awk 'BEGIN {
varName="CHRFProtocol";
gsub(/[a-z]/,"f",varName);
print(varName); }'
Run Code Online (Sandbox Code Playgroud)
GNU awk尊重语言环境设置,在Linux上的大多数国家语言环境中,正则表达式不区分大小写.在命令期间将语言环境重置为C(= POSIX)awk可恢复区分大小写.
| 归档时间: |
|
| 查看次数: |
3097 次 |
| 最近记录: |