awk:将第二行、列(如果存在)的值设置为变量

awk:将第二行、列(如果存在)的值设置为变量

考虑这个文件:

#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, value
1, 3.21
1, 3.42
1, 3.5
2, 4.1
2, 4.2
EOL

现在我想设置第二列、第二行的值到变量val2。我尝试:

var='example_file.txt' 
cat $var | val2=$(awk -F, "NR==2{print $2; exit}")

  • 这不起作用:echo "$val2"不返回任何内容
  • val2如果文件只有一行,我想分配一个默认值。

答案1

尝试这个

var='example_file.txt' 
val2=$(cat $var | awk -F, "NR==2{print $2; exit}")

cat 需要直接通过管道传输到 awk 命令中,而不是变量赋值行。

请注意,您可以使用以下方法全部删除cat

val2=$(awk -F, "NR==2{print $2; exit}" <$var)

相关内容