将bash变量传递给awk

时间:2015-02-02 18:12:05

标签: bash awk

我正在尝试使用bash中的函数中的awk从文本表中提取行/列元素。具体做法是:

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

用法是:

getel <file> <row> <col>

如果我输入:

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

在bash提示符下,我按预期得到第1行第2列 我挖掘了各种bash-awk问题,但似乎没有人能让我找到解决方案。

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

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

感谢

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

awk 'NR=='$2'{print $'$3'}' $1