-1

这个有效:

temp=($(awk -F" "  '$2 == 84' "$1".db))

这个没有(fieldnumber 存储我希望搜索的列,val 存储我正在搜索的值):

temp=($(awk -F" " -v column="$""$field_number" -v val="$3" '{ if(column == val) print $0;}' "$1".db))

我正在尝试根据 shell 脚本中的命令行输入来操作 awk 命令: ./dr.sh cop4342 exam1 84(84 是要搜索的值)(exam1 在 shell 脚本中用于查找列号)

代码图像 代码输出

4

1 回答 1

0

这非常不清楚,但我猜你正在寻找

temp=($(awk -F " " -v column="$field_number" \
            -v val="$3" '{ if($column == val) print $0;}' "$1".db))

当然可以简化为

temp=($(awk -v column="$field_number" \
            -v val="$3" '$column == val' "$1".db))
于 2022-02-07T10:59:01.050 回答