在 awk 中扩展变量

在 awk 中扩展变量

我有大约 1000 个文件,如果每个文件的第一个字段与特定数字匹配,我需要打印相应的第三个元素。由于下面的数字 7 不是恒定的,并且它基于先前脚本的输出,因此当我尝试传递变量时,它会失败。

$cat ${i} | head -14 | awk '$1 == "7" {print $3}'
$Supervisor
$blah=7
$cat ${i} | head -14 | awk '$1 == "${blah}" {print $8}'

我尝试过使用其他组合来转义/扩展比较中的变量,但它们似乎都无法扩展变量blah

答案1

你最好的选择可能是将它作为awk变量传递-v

head -14 "$i" | awk -v blah="$blah" '$1 == blah {print $8}'

或没有该head部分:

awk -v blah="$blah" 'NR > 14 {exit} $1 == blah {print $8}' "$i"

相关内容