jdelucia
(usa CentOS)
Enviado em 07/02/2017 - 15:12h
Mauriciodez escreveu:
jdelucia escreveu:
Boa tarde.
Meu problema é o seguinte: tenho vários arquivos texto com diferentes quantidades de linhas, mas, sempre a penúltima é a única informação que desejo.
São em torno de 290 arquivos e eu gostaria de adicionar somente a penúltima linha de cada um deles em um novo arquivo, variando automaticamente o nome dos arquivos.
Tentei alguma coisa com tail, com sed, mas como sou um tanto quanto leigo, não consegui especificamente o que eu quero.
Com o tail eu consegui as duas últimas linhas, mas não especificamente a penúltima.
Os arquivos contêm especificamente um dir de um diretório do windows e o nome do arquivo varia conforme o nome da máquina em que esse dir foi executado. Então o nome do arquivo ficou assim: coleta_"nomedamaquina"_D_Email.txt
Eu gostaria de variar esse nome automaticamente para não ter que executar o comando arquivo por arquivo.
Sei que deve ser bem fácil, mas não estou obtendo êxito.
Aguardo retorno!
Obrigado e abraço!
para pegar a penúltima linha vc usa o tail e depois o head
EX:
cat arquivo.txt | tail -2 | head -1
o tail retornou as 2 ultimas e depois o head retornou a primeira das duas últimas !!!
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
OK, o tail e o head deram certo, mas eu tenho mais de 200 arquivos e não quero fazer um por um.
Por exemplo, ao invés de:
cat arquivo1.txt | tail -2 | head -1 > tudo.txt
cat arquivo2.txt | tail -2 | head -1 > tudo.txt
seria: cat arquivo*.txt | tail -2 | head -1 > tudo.txt
quero que ele passe automaticamente em todos os arquivos do diretório.
No aguardo e obrigado mais uma vez.