考虑这个文件:
#!/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)