Exibindo determinada linha de um arquivo no terminal
Opa, você conhece o EDLAT? Não?! É não conhece mesmo viu, eu criei essa Sigla para esta Dica hehehe.
EDLAT, é: "Exibindo Determinada Linha de um Arquivo no Terminal" ehehhee. :D
Pensei até em colocar como Título: "Conheça o EDLAT ...", mas, seria sacanagem, e com certeza você iria brigar comigo, não é mesmo?! Por ter colocado um título desses, poderia até imaginar que fiz de propósito para "forçá-lo" a ler essa dica, mas não era a intenção, tanto que, não coloquei esse título. :D
Brincadeiras a parte, vamos ao que interessa, à dica.
Bom, devido a uma pergunta que foi feita no dia 14/09/06 (não vou por "hoje", porque, quando o "hoje" terminar?! Vai ficar estranho né :D), sobre mostrar uma linha de um arquivo pelo terminal (onde a mesma, foi respondida por mim e um outro cara), então, resolvi mandar essa dica. Até porque, antes de escrevê-la, procurei para ver se já havia algo sobre o assunto (se tivesse não faria essa dica), e nada, não encontrei, portanto, aqui está uma breve dica.
Seguinte, vamos dizer assim, existem X meios de você fazer isso, porém mostrarei alguns. Caso você queira acrescentar mais alguma coisa, use o campo de comentários. :D
A Dica é ... para mostrar uma determinada linha de um arquivo pelo terminal, faça o seguinte (escolha um dos comandos, e pronto).
Abra um terminal, seja ele eTERM, aTERM, qual você preferir e digite o seguinte:
Outros tipos de comandos, mas com os resultados diferentes...
cat -n "Arquivo_Desejado" | grep "Linha_do_Arquivo"
cat -n "Arquivo_Desejado" | sed '7s/Linha_do_Arquivo//'
cat -n "Arquivo_Desejado" | sed '7s/Linha_do_Arquivo/Palavra_Desejada/'
Exemplos dos comandos acima:
$ cat -n "Arquivo_Exemplo" | grep "7"
$ cat -n "Arquivo_Exemplo" | sed '7s/7//'
$ cat -n "Arquivo_Exemplo" | sed '7s/7/Essa Linha Que Eu Quero:>/'
Veja a imagem para entender melhor:
Nota: O primeiro comando mostra todas as linhas do arquivo que tenha o número 7 (exemplo: 7, 17, 27, etc), já o segundo e o terceiro, ambos vão mostrar TODAS as linhas do arquivo, porém o segundo mostra todas as linhas, mas sem o número dela e o terceiro, além de mostrar todas as linhas, adiciona uma palavra antes da linha (a palavra que você escolher).
Vejamos mais exemplos...
Esses são bem dizer, o mesmo que os 3 (três) anteriores, mas, não será exibido no terminal, e sim, criado um arquivo com o resultado, vejamos:
[1] Comentário enviado por metalrufflez em 27/09/2006 - 12:18h:
Hehehe, um tempo atras me fizeram essa pergunta, exibir a quinta linha no terminal...
Eu respondi assim:
cat arquivo | head -5 | tail -1
Dá certo tb :D
[2] Comentário enviado por leaf em 28/09/2006 - 01:22h:
opa, mais um pra galera ;dd ...
E como vc comentou, vo mandar otro tbm heehe ...
Tipow se vc fizer sem o "tail -1", da certo tbm ;dd ...
mas, no caso aí, ele mostra as 5 (cinco) Primeiras Linhas do Arquivo ...
Exemplo do comando:
cat Arquivo_Exemplo | head -5
Resultado ...:
Linha Número 1
Linha Número 2
Linha Número 3
Linha Número 4
Linha Número 5
Vlw ...
;dddd
[3] Comentário enviado por xerxeslins em 01/04/2009 - 04:34h:
Gostei! =D
Obrigado pela informação!
Agora tenho mais um desafio pra vc:
Como eu faço para mostrar o conteúdo de um arquivo de texto, apenas a partir de uma determinada linha, que contenha uma determinada palavra?
Por exemplo, se eu tenho um arquivo com o seguinte conteúdo:
bolacha
bacia
bola
bolinho
bolo
balão
Como seria o comando pra listar o conteúdo do arquivo a partir da linha que tem a palavra bacia?
Não é pelo número da linha, pois eu poderia colocar "bacia" em outra linha e o mesmo comando teria que funcionar.
Essa eu perguntei, pois eu nao tenho a mínima idéia de como solucionar.
Se puder, poderia ao menos me dar uma dica sobre que comandos ou parâmetros eu teria que usar?
Valeu!
[4] Comentário enviado por vambboy em 25/08/2009 - 18:46h:
leaf, brigadão!
esta dica me ajudou bastante para a criação de um script (disponível em breve).
[5] Comentário enviado por spish em 03/05/2010 - 13:46h:
Olá amigo essa dica aqui também dá certo:
$ cat "arquivo" | sed -n -e "linha a ser exibida"p
Por exemplo, possuo um arquivo teste.txt com seguinte conteúdo e quero exibir a quinta linha: