如何检查第一个字符substr($x, 0, 1)
是否是从 A 到 L 的字母?
问问题
268 次
2 回答
2
先入
substr($x, 0, 1)
你最好用
substr($x, 1, 1)
因为 awk 数组、字符串 idx 等都是从 1 开始的。gawk0
和1
(甚至-100)
,其他 awk 实现可能不适用于0
案例(给你意想不到的价值)。
您可以使用正则表达式检查该字母范围,或者将它们与 进行比较> or <
,例如:
awk 'BEGIN{s=substr($x,1,1);print (s>="A"&&s<="L")?"YES":"NO"}'
如果你想用正则表达式检查它,你不需要这个substr()
函数:
awk 'BEGIN{print ($x~/^[A-L]/)?"YES":"NO"}'
于 2013-04-19T15:13:19.150 回答
1
~
像这样使用正则表达式匹配运算符substr($x,0,1)~/[A-L]/
。
$ cat file
ABC
DEF
XYZ
123
$ awk 'substr($0,0,1)~/[A-L]/' file
ABC
DEF
于 2013-04-19T15:07:05.080 回答