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)