У меня есть переменная ($line), которая определена в сценарии bash/shell как
$line = "abc:123:def:345"
Мне нужно передать этот столбец2 = "123" в переменную, не печатая его.
Команда извлекает столбец, но также печатает переменную.
FILE=$1
while read line
do
awk -F: '{print $2}' <<< "$line"
done < $FILE
Спасибо.
🤔 А знаете ли вы, что...
Bash - это командный интерпретатор Unix-подобных операционных систем.
Вы можете поймать его в переменную:
value=$(awk -F : '{ print $2 }' "$FILE")
Синтаксис $(command)
(или его устаревший аналог с обратными кавычками `command`
) называется подстановкой команд. Он используется для оценки внутренней команды и предоставления ее результата в качестве аргумента текущей команде.
Обратите внимание, что Awk уже умеет перебирать все строки файла.