A diversidade de comandos via shell no Linux é espantosa, sendoassim, com um pipe (|) e uma pitada de criatividade, umadministrador de sistemas vai longe.
Na dica de hoje vamos aprender a combinar os comandos head etail para exibir determinadas partes de um arquivo texto. Vamosa um exemplo prático para ver como funcionará nossa combinação. Suponhaque temos o arquivo lista_nomes.txt com o seguinte conteúdo:
01. Aline Tavares Silva 02. Bruno Delgado Bonfim 03. Carla Garantizado Bela 04. Danilo Servantes 05. Eliane Costa Pinheiro 06. Elivaldo Pereira 07. Fábio Berbert de Paula 08. Felipe Azambuja 09. Gardineu Marques 10. Romário Belleza
Em nosso estudo de caso, quero exibir na tela somente o intervaloentre as linhas 5 e 8. Vamos às contas:
O intervalo de linhas de 5 à 8 contém 4 linhas (5, 6, 7 e 8)
Vamos usar o comando head para exibir as primeiras 8 linhas
Vamos usar o comando tail para exibir as últimas 4 das 8 linhas
Assim sendo, podemos construir o comando:
$ head -n 8 lista_nomes.txt | tail -n 4
Logo, se considerarmos a primeira linha quista como L1 e a última L2, podemosmontar o comando da seguinte forma:
$ head -n L2 <arquivo> | tail -n ((L2- L1) + 1)
Para simplificar ainda mais, vamos a um simples shell script:
[2] Comentário enviado por AprendiNoLinux em 05/09/2011 - 12:26h:
Se eu preciso das duas primeiras linhas do arquivo e as duas últimas linhas do arquivo ?
[3] Comentário enviado por Miqueloti em 26/03/2012 - 18:20h:
AprendiNoLinux, basta utilizar os comandos head e tail que pegam n linhas do inicio / n linhas do fim do arquivo respectivamente.
Comando:
head -n 2 seu_arquivo.txt; tail -n 2 seu_arquivo.txt;
Este comando mostraria na tela, caso queira redirecionar para um novo arquivo bastaria utilizar o operador para tal:
head -n 2 seu_arquivo.txt >> novo_arquivo.txt; tail -n 2 seu_arquivo.txt >> novo_arquivo.txt;