如何查看substr($x, 0, 1)
的第一个字母是否是从A到L的字母?
答案 0 :(得分:2)
首先在
substr($x, 0, 1)
你最好使用
substr($x, 1, 1)
因为awk数组,字符串idx等都是从1开始的。 gawk同时适用于0
和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"}'
答案 1 :(得分:1)
使用正则表达式匹配运算符~
,如substr($x,0,1)~/[A-L]/
。
$ cat file
ABC
DEF
XYZ
123
$ awk 'substr($0,0,1)~/[A-L]/' file
ABC
DEF