刚遇到一个awk脚本
awk 'BEGIN {OFS=FS} NR==FNR {a[$1]=($2" "$3);next} {for (i in a) if(index(i,$12)==1) print $0,a[$12]}'
在这个脚本中 if(index(i,$12)==1 是什么意思?它是否在数值等于 1 时指示真/假条件?
没有样本就很难理解问题的完整要求。通过查看您的代码来尝试。
BEGIN
: 部分在读取 Input_file 之前执行。
OFS=FS
这对我来说没有意义,因为默认情况下两个变量都是空格。
NR==FNR
: 这是读取第一个 Input_file 时的条件。
a[$1]
: 创建一个名为 a 的数组,其索引是当前行的 $1,值是该行的第 2 和第 3 列,其中有空格。
next
: next 将从这里跳过 1dt Input_file 的所有进一步语句。
for(i in a)
: 开始一个 for 循环,遍历数组 a 的所有元素。
index(i,$12)==1
: 检查条件是否为第 1 个 Input_file 的第 1 列的数组 a 的索引与第 12 列的起始点相同。虽然不能保证它会匹配精确的单词。它将看起来匹配并返回它的起点,因此我们在这里检查匹配字符串的起始值是否为 1。
如果上述条件为 TRUE,则打印当前行和索引为 的数组 a $12
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句