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}")

Кошка должна быть напрямую передана в команду awk, а не в строку назначения переменных.

Обратите внимание, что вы можете избавиться от cat все вместе с:

val2=$(awk -F, "NR==2{print $2; exit}" <$var)
Другие вопросы по тегам