Eu gosto muito de gawk, mas você poderia usar uma abordagem mais flexível sem ter que ter (g) awk em seu sistema. Armazene a saída do seu comando em uma matriz bash como essa (observe os sinais de retorno ao redor do seu comando):
array=('smartctl -a /dev/sda')
Então você pode se referir a qualquer palavra em sua matriz pelo seu número de índice (veja abaixo exemplos).
Infelizmente, não tenho dispositivos conectados ao meu sistema que o "smartctl" esteja reconhecendo. Então eu uso a saída do comando "man uptime" como entrada para meus exemplos.
array=('man uptime')
Mostrar todos os elementos desta matriz:
echo ${array[@]}
UPTIME(1) FreeBSD General Commands Manual UPTIME(1) NAME uptime — show how long system has been running SYNOPSIS uptime DESCRIPTION The uptime utility displays the current time, the length of time the sys‐ tem has been up, the number of users, and the load average of the system over the last 1, 5, and 15 minutes. FILES /boot/kernel/kernel system name list SEE O w(1) HISTORY The uptime command appeared in 3.0BSD. FreeBSD 9.1 April 18, 1994 FreeBSD 9.1
Mostrar palavras específicas:
Por favor, note que os elementos da matriz estão sendo contados a partir de zero. Portanto, a sétima palavra seria referida como "$ {array [6]}".
Digamos que você queira recuperar a 19ª e a 17ª palavra da saída do comando "man uptime" (ou seja, as palavras "DESCRIPTION" e "SYNOPSIS").
echo ${array[18]} ${array[16]}
DESCRIPTION SYNOPSIS
Usando a abordagem interessante do usuário 'Arpith' com 'read', você também pode armazenar elementos de array em variáveis mais fáceis de lembrar, como:
array2=('ifconfig')
read IPETH0 IPLO <<< $(echo ${array2[6]} {array2[46]}
echo $IPETH0 $IPLO
192.168.0.103 127.0.0.1
Não mexa em algo como "último campo nesta linha" ou uma máscara de caractere, etc. Basta usar os números de posição.
Índices de matriz são inteiros positivos. Assim, você pode fazer todos os tipos de cálculos em seu script de shell para escolher palavras específicas (como intervalos ou a cada terceira palavra ou for-loops ...)
HTH
bernie