将 bash 变量传递给 awk

Passing bash variable to awk

我正在尝试在 bash 的函数中使用 awk 从文本 table 中提取 row/column 元素。具体来说:

getel() {
    awk -v col= 'FNR== {print $col }' 
}

用法是:

getel <file> <row> <col>

如果我输入:

awk -v col=2 'FNR==1 {print $col}' infile

在 bash 提示符下,我得到了预期的第 1 行第 2 列。
我研究了各种 bash-awk 问题,但 none 似乎让我找到了解决方案。

最终,我想将结果赋值给另一个bash变量,即:

FOUND=`awk -v col=2 'FNR==1 {print $col}' infile`

谢谢

将另一个命令行变量传递给 awk:

getel() {
    awk -v row= -v col= 'NR==row {print $col }' 
}

或者您可以直接使用 bash 变量:

awk 'NR==''{print $''}'