Olá pessoal, Mais uma vez agradeço a todos pelas opiniões. Júlio esse da inversão também foi bem interessante e saber como o shell nos dá infinitas possibilidades para chegarmos a um resultado. Muito legal. Peguei algumas das opções e realizei alguns testes para saber qual era o mais rápido. Abaixo, segue o script tendo ao lado de cada comando o resultado da velocidade da execução do script utilizando o comando "time ./pegarNome.sh"
pegarNome.sh #!/bin/bash cat agrs | while read LINHA do #NOME="`echo ${LINHA% *} | cut -d" " -f2-`" # Executado em: 20s. #NOME="`sed 's/^[^ ]* //;s/ [^ ]*$//' <<< $LINHA`" #Executado em:22s. #NOME="`sed -r 's/ *$//;s/[0-9]+ (.*) .*/\1/' <<< $LINHA`" #Executado em 0m0.023s. Algumas vezes chegou a ser executado em 0.011s, 0.012s e 0.013s #NOME="`cut -f2- -d' ' <<<$LINHA | rev | cut -f2- -d' ' | rev`" # Executado em 0m0.028s. Algumas vezes chegou a ser executado em 0.014s, 0.015s, 0.016s, 0.018s, 0.019s, 0.021s, 0.027s, 0.029s, 0.030s, 0.031s e 0.061s. Esse é bem variável saida=$(echo ${LINHA#* }); echo "\"${saida% *}\"" #Executado em 0m0.010s. Algumas vezes chegou a ser executado em 0.005s, 0.006s e 0.008s #echo $NOME done
Eu preciso conhecer mais sobre o funcionamento desse comando sed. É um comando muito poderoso.