Debian/CentOS [RESOLVIDO]

1. Debian/CentOS [RESOLVIDO]

Marcos Vinícius Dunguel Nunes
mdunguel

(usa Debian)

Enviado em 18/04/2013 - 11:13h

Senhores, Bom Dia.
Estou querendo pegar/retirar/extrair "n" linhas de um arquivo e gravá-las em outro arquivo.
No aguardo,



  


2. Re: Debian/CentOS [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 18/04/2013 - 12:37h

Mas qual critério vc quer usar na busca?
Buscar palavras específicas? Filtrar pelo número das linhas? Buscar linhas que nao estejam em branco? etc ..
Exemplifique melhor!


3. Re: Debian/CentOS [RESOLVIDO]

Marcos Vinícius Dunguel Nunes
mdunguel

(usa Debian)

Enviado em 18/04/2013 - 12:43h

alexandregms escreveu:

Mas qual critério vc quer usar na busca?
Buscar palavras específicas? Filtrar pelo número das linhas? Buscar linhas que nao estejam em branco? etc ..
Exemplifique melhor!


A princípio pegar linhas inteiras.



4. Re: Debian/CentOS [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 18/04/2013 - 12:53h

Blza, mas vc esta sendo muito genérico nas questões.
Da pra usar grep, sed, for, if, awk
Seja mais específico!


5. Re: Debian/CentOS [RESOLVIDO]

Joca (Altemir Braz Dantas Junior)
jocajuni

(usa Debian)

Enviado em 18/04/2013 - 13:23h

Exemplo de pegar a linha que contem um determinado texto e jogar em outro arquivo


grep "texto_desejado" arquivo_origem > arquivo_destino


Exemplo de vc gravar a linha de um texto subustituido em outro arquivo


sed 's/texto_desejado/texto_substituir/' arquivo_origem | grep "testo_substituir" > arquivo_destino


Como o outro colaborador falou vc esta muito vago para te ajudarmos


[]s
Altemir Braz Dantas Junior
Jocajuni


6. Re: Debian/CentOS [RESOLVIDO]

Marcos Vinícius Dunguel Nunes
mdunguel

(usa Debian)

Enviado em 18/04/2013 - 13:58h

alexandregms escreveu:

Blza, mas vc esta sendo muito genérico nas questões.
Da pra usar grep, sed, for, if, awk
Seja mais específico!


ok.

Um exemplo significativo para eu poder esclarecer melhor é de um arquivo de LOG.
Este arquivo, hipotético, tem 500 linhas ao todo.
Quero extrair 3 linhas inteiras, quaisquer, deste arquivo e salvá-las em um outro arquivo menor contendo apenas estas linhas para uma análise.
Essas linhas serão salvas com todo o seu conteúdo, sem especificar algo dentro dela, como por exemplo uma data.



7. Re: Debian/CentOS [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 18/04/2013 - 15:35h

mdunguel escreveu:

exemplo de um arquivo texto:
Entrada 1(arquivo X):

Hoje comemoramos o descobrimento do Brasil.
É uma data muito importante.
Pois foi quando o nosso Pais nasceu.
[...]

Entrada 2(arquivo Y):

[...]
Por isso foi considerado feriado nacional.
As pessoas ficam em casa.
Há também o desfile militar pela TV.

Saída (arquivo Z):

Hoje comemoramos o descobrimento do Brasil.
É uma data muito importante.
Pois foi quando o nosso Pais nasceu.
Por isso foi considerado feriado nacional.
As pessoas ficam em casa.
Há também o desfile militar pela TV.



Bom, para o seu primeiro exemplo poderia usar o head e tail:


head -3 arquivo_X >> arquivo_Z
tail -3 arquivo_Y >> arquivo_Z


Agora se vc quer atuar com outras linhas, pode usar o grep, sed, "for junto com if", ou até mesmo usar o head e tail simultaneamente, por exemplo:

Imagine que vc tenha um arquivo com 20 linhas e deseja exibir apenas as linhas 10 a 15:


head -15 arquivo.txt | tail -6


E por aí vai, há inúmeras formas para trabalhar com manipulação de arquivos em shell!



8. Re: Debian/CentOS [RESOLVIDO]

Marcos Vinícius Dunguel Nunes
mdunguel

(usa Debian)

Enviado em 18/04/2013 - 15:46h

alexandregms escreveu:

mdunguel escreveu:

exemplo de um arquivo texto:
Entrada 1(arquivo X):

Hoje comemoramos o descobrimento do Brasil.
É uma data muito importante.
Pois foi quando o nosso Pais nasceu.
[...]

Entrada 2(arquivo Y):

[...]
Por isso foi considerado feriado nacional.
As pessoas ficam em casa.
Há também o desfile militar pela TV.

Saída (arquivo Z):

Hoje comemoramos o descobrimento do Brasil.
É uma data muito importante.
Pois foi quando o nosso Pais nasceu.
Por isso foi considerado feriado nacional.
As pessoas ficam em casa.
Há também o desfile militar pela TV.



Bom, para o seu primeiro exemplo poderia usar o head e tail:


head -3 arquivo_X >> arquivo_Z
tail -3 arquivo_Y >> arquivo_Z


Agora se vc quer atuar com outras linhas, pode usar o grep, sed, "for junto com if", ou até mesmo usar o head e tail simultaneamente, por exemplo:

Imagine que vc tenha um arquivo com 20 linhas e deseja exibir apenas as linhas 10 a 15:


head -15 arquivo.txt | tail -6


E por aí vai, há inúmeras formas para trabalhar com manipulação de arquivos em shell!


Com esses mesmos comandos eu posso especificar qualquer linha que eu queira.

Por exemplo, se eu quiser pegar as linhas compreendidas entre as de número 40 e 50 do arquivo, como faço?



9. Re: Debian/CentOS [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 18/04/2013 - 16:06h

Tem muitos jeitos mesmo de fazer isso, eu faria:

sed -n '40,50p' arquivo1 > arquivo2




10. Re: Debian/CentOS [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/04/2013 - 17:01h

Vocês estão sendo muito bonzinhos.

Alguém que chega a um fórum colaborativo, "taca" um enunciado, e termina a mensagem com um "no aguardo", não sendo meu professor nem meu chefe, tem mais é que chupar uma meia.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts