Eu tenho uma variável ($line) que é definida no script bash/shell como
$line = "abc:123:def:345"
Preciso levar essa coluna2 = "123" para uma variável sem imprimi-la
O comando extrai a coluna, mas também imprime a variável
FILE=$1
while read line
do
awk -F: '{print $2}' <<< "$line"
done < $FILE
Obrigado.
Você não precisa chamar o comando externo
awk
:Você pode capturá-lo em uma variável:
A sintaxe
$(command)
(ou o quase equivalente obsoleto com crases`command`
) é chamada de substituição de comando . É usado para avaliar o comando interno e fornecer seu resultado como argumento para o comando atual.Observe que o Awk também já sabe como fazer um loop em todas as linhas do arquivo.