Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: kylix em slack 10.1
Por cego
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Exibindo determinada linha de um arquivo no terminal
Linux user
Publicado por Rafael em 27/09/2006

Login: leaf, 399964 pontos
[ Hits: 8090 ]

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:

cat -n "Arquivo_Desejado" | grep -n ^ | grep ^Linha_do_Arquivo: | cut -d: -f2
cat -n "Arquivo_Desejado" | grep -n ^ | grep ^Linha_do_Arquivo
cat "Arquivo_Desejado" | grep -n ^ | grep ^Linha_do_Arquivo: | cut -d: -f2
cat "Arquivo_Desejado" | grep -n ^ | grep ^Linha_do_Arquivo


Exemplos dos comandos acima:

$ cat -n "Arquivo_Exemplo" | grep -n ^ | grep ^7: | cut -d: -f2
$ cat -n "Arquivo_Exemplo" | grep -n ^ | grep ^7
$ cat "Arquivo_Exemplo" | grep -n ^ | grep ^7: | cut -d: -f2
$ cat "Arquivo_Exemplo" | grep -n ^ | grep ^7


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:

cat -n "Arquivo_Desejado" | grep "Linha_do_Arquivo" >>/Diretório/Arquivo
cat -n "Arquivo_Desejado" | sed '7s/Linha_do_Arquivo//' >>/Diretório/Arquivo
cat -n "Arquivo_Desejado" | sed '7s/Linha_do_Arquivo/Palavra_Desejada/' >>/Diretório/Arquivo


Exemplos dos comandos acima:

$ cat -n "Arquivo_Exemplo" | grep "7" >>/tmp/Arq_Tmp01
$ cat -n "Arquivo_Exemplo" | sed '7s/7//' >>/tmp/Arq_Tmp02
$ cat -n "Arquivo_Exemplo" | sed '7s/7/Essa Linha Que Eu Quero:>/' >>/tmp/Arq_Tmp03


Bom, se tratando de uma dica, ficarei por aqui, são apenas alguns exemplos, como informei no começo dessa dica.

Mas antes de finalizar, veja a imagem com todos os resultados de cada comando.


Pronto, terminou-se a dica.

Espero que seja útil para alguém...

Até mais.
Rafael


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Listar somente diretórios
   Dica Linux recomendada Configurando placa Realtek RTL8191SE-VA2 no Kismet (Ubuntu e similares)
   Dica Linux recomendada Resolvendo o erro: Sub-processo gzip retornou um código de erro (1)
   Dica Linux recomendada Gravando um CD rapidamente
   Dica Linux recomendada Gravar CD´s pelo prompt

Comentários
[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:

nada
poxa
P@ssw0rd
p@ssw0rd
iorgute
brega
frutinha
123456
senha
idiota
abcdefghi

Então faz-se:

$ cat teste.txt | sed -n -e 5p
iorgute

T+.



Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.