Estou construindo um script o qual necessita acessar um arquivo, linha a linha, partindo da última linha para a primeira linha. Existe algum comando que possa auxiliar a construção deste script?
Resposta: O comando cat exibe o conteúdo de um arquivo da primeira linha para a última linha, já o comando tac, cat escrito ao contrário, exibe o conteúdo de um arquivo da última linha para a primeira linha.
Exemplo de um script que acessa um arquivo, linha a linha, partindo da última linha para a primeira linha:
#!/bin/bash
lista=`tac dias_semana.txt`
for item in $lista; do
echo 'Hoje é '$item', dia de bebemorar :-)'
done
Saída do script acima:
Hoje é Sábado, dia de bebemorar :-)
Hoje é Sexta-feira, dia de bebemorar :-)
Hoje é Quinta-feira, dia de bebemorar :-)
Hoje é Quarta-feira, dia de bebemorar :-)
Hoje é Terça-feira, dia de bebemorar :-)
Hoje é Segunda-feira, dia de bebemorar :-)
Hoje é Domingo, dia de bebemorar :-)
Obs.: Caso necessite, troque tac por cat no script acima.
[2] Comentário enviado por prof.dmt em 07/03/2008 - 15:29h
Olá Elgio,
Obrigado por apontar meu descuido (erro). Na pressa, esqueci da variável 'IFS'.
Atribuindo o caracter 'nova linha' ('\n') à variável 'IFS ', é possível usar o 'for' para resolver o problema em questão. Assim, após a devida correção, o 'script' ficará:
#!/bin/bash
lista=`tac dias_semana.txt`
IFS='
'
for item in $lista; do
echo 'Hoje é '$item', dia de bebemorar :-)'
done
Nota: No 'script' acima, foi atribuindo o caracter 'nova linha' à variável 'IFS'.
Mais uma vez, obrigado Elgio. Com contribuições como a sua, a comunidade só tem a ganhar.