要检查当前正在处理的字段

时间:2016-08-03 10:17:28

标签: awk gawk

是否可以检查当前正在处理的字段。

const

2 个答案:

答案 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

这将打印与模式匹配的所有字段。