Рассмотрите этот файл:
#!/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
значение по умолчанию в случае, если файл имеет только одну строку.Попробуйте это
var='example_file.txt'
val2=$(cat $var | awk -F, "NR==2{print $2; exit}")
Кошка должна быть непосредственно передана по каналу в команду awk, а не переменную строку присвоения.
Обратите внимание, что можно избавиться от cat
все вместе с:
val2=$(awk -F, "NR==2{print $2; exit}" <$var)