是否可以检查当前正在处理的字段。
const
答案 0 :(得分:1)
$ awk '/pattern/{for(i=1;$i!~/pattern/;i++); print i}' file
如果是多个匹配,则只返回第一个匹配字段。让我们来看看:
$ cat file
A 1 A1g DELL
A 1 B1s HP
A 7 HP HP
A 5 Jgf KIT
A 1 Def JOP
$ awk '/HP/{for(i=1;$i!~/HP/;i++); print i}' file
4
3
答案 1 :(得分:1)
我认为没有内置方法来获取匹配发生的字段编号,但您可以使用循环执行此操作:
awk '{ for (i = 1; i <= NF; ++i) if ($i ~ /pattern/) print i }' file
这将打印与模式匹配的所有字段。