在 awk 中使用精确的 if 语句

在 awk 中使用精确的 if 语句

是否可以在“if”语句中精确设置条件?让我们从我之前的帖子中举一个例子(顺便说一句,“k”变量很棘手,感谢 terdon;))并假设我正在寻找以两个大写字母开头的 $i,之后我们有 2 位数字,其他字母/数字并不重要,我正在寻找的单词的长度不是恒定的(例如:AB12asdf 或 HR56Ame4)。

awk'{k=0;对于(i=1;i<=NF;i++){

        if ($i=="ABC"){print $(i-2); k++}
       } 
       if(k==0){print "No ABC in line",NR}
 }' file.txt

谢谢,

卢卡斯

答案1

使用~正则表达式匹配运算符

if ($i ~ /^[[:upper:]][[:upper:]][[:digit:]][[:digit:]]/)

相关内容