Usando grep. [RESOLVIDO]

1. Usando grep. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 31/12/2013 - 09:59h

Ola pessoal!

Tenho um arquivo assim:
--------------------------
01 0000: push %ebp
02 0001: mov %esp,%ebp
--------------------------

Como usaria o grep para obter uma saída assim ?:
--------------------------
: push %ebp
: mov %esp,%ebp
--------------------------

Ou assim:
--------------------------
"push %ebp"
"mov %esp,%ebp"
--------------------------

Ou algo que filtre de um ponto ate o final do texto ?

Eh para economizar tempo e nao ter que programar isso.

Grato!


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 02/01/2014 - 19:37h

Parece que consegui cara!!!

Utilizando a opção -P que utiliza expressões regulares ao estilo do Perl, veja como ficou:


phoemur ~/bash/teste $ cat arquivo.txt
01 0000: push %ebp
02 0001: mov %esp,%ebp
phoemur ~/bash/teste $ grep -o -P '(?<!:)\w+\s%.*' arquivo.txt
push %ebp
mov %esp,%ebp


Agora precisaria ver uma extensão maior da saída pra ver se está combinando certinho...

abraços

3. Re: Usando grep. [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 31/12/2013 - 10:28h

gokernel escreveu:

Ola pessoal!

Tenho um arquivo assim:
--------------------------
01 0000: push %ebp
02 0001: mov %esp,%ebp
--------------------------

Como usaria o grep para obter uma saída assim ?:
--------------------------
: push %ebp
: mov %esp,%ebp
--------------------------

Ou assim:
--------------------------
"push %ebp"
"mov %esp,%ebp"
--------------------------

Ou algo que filtre de um ponto ate o final do texto ?

Eh para economizar tempo e nao ter que programar isso.

Grato!


Se só tem um dois-pontos, faz assim:

 $ cat arquivo | grep criterios | cut -d':' -f2 

Explicando: o cat joga o arquivo pro pipe, o grep lê o pipe filtrando pelos critérios e joga pra outro pipe que usa o cut pra separar o arquivo em colunas usando os dois-pontos como caractere de separação de colunas (no parâmetro -d do cut são aspas simples). Pra obter a segunda saída, o comando seria
 $ echo \"$(cat arquivo | grep criterios | cut -d':' -f2 | cut -d' ' -f2- )\" 



4. Re: Usando grep. [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 31/12/2013 - 10:34h

pode ser também


$ gawk -F: '{print $2 }' arquivo

espero que ajude


5. Re: Usando grep. [RESOLVIDO]

Clodoaldo Silva
cldoarclnx

(usa Arch Linux)

Enviado em 31/12/2013 - 10:38h

Olá tenta esse comando:

#awk -F: '{print $2" "$3}' <caminho do arquivo>




6. Re: Usando grep. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 31/12/2013 - 11:21h

Opa desculpa pala falta de mais info ..., estou usando o windows e tenho somente o grep ...

Poderiam indicar como fazer somente com o grep ???

Abraços !




7. Re: Usando grep. [RESOLVIDO]

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 02/01/2014 - 15:37h

olha amigo, dentro dos meus conhecimentos o grep faz tratativa de texto, mas nao sei se ele difere colunas.

acredito que tenha que ver a parte de expressões regulares, para conseguir chegar no seu objetivo.


8. Re: Usando grep. [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 02/01/2014 - 19:29h

O mais perto que eu cheguei apenas com grep foi utilizando a opção -o do GNU grep:

filtrando do dois pontos até o fim da linha


phoemur ~/bash/teste $ cat arquivo.txt
01 0000: push %ebp
02 0001: mov %esp,%ebp
phoemur ~/bash/teste $ grep -o ':.*$' arquivo.txt
: push %ebp
: mov %esp,%ebp


Porém note que ainda ficou o dois pontos no início...
O grep não foi feito pra separar colunas, ele como default imprime a linha inteira...
Pra fazer o que você quer precisaria do cut mesmo como o lcavalheiro sugeriu ou então awk, sed ou mesmo perl ou python seria bem fácil também...

Use o que estiver á sua disposição...


9. Re: Usando grep. [RESOLVIDO]

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 03/01/2014 - 07:53h

Muito bem phoemur,

expressões regulares resolvem muita coisa :D


10. Re: Usando grep. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 03/01/2014 - 12:41h


Pessoal, grato pelo retorno ... já resolvido aqui via codigo C mesmo ...

Abraço !!!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts