我正在尝试使用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`
感谢
答案 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