awk: Установленное значение во второй строке, colunm (если это существует) к переменной

Рассмотрите этот файл:

#!/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 значение по умолчанию в случае, если файл имеет только одну строку.
0
задан 25 August 2018 в 08:21

1 ответ

Попробуйте это

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)
3
ответ дан 28 October 2019 в 02:17

Другие вопросы по тегам:

Похожие вопросы: