Formatar texto, tirar [ ], +, *...

1. Formatar texto, tirar [ ], +, *...

Kelvin
K3LV!N

(usa Outra)

Enviado em 02/04/2016 - 14:46h

Olá pessoal tranquilo?

Estou fazendo meu TCC, e realizando alguns testes com o navegador em modo texto lynx, na verdade estou utilizando como uma ferramenta de captura de conteúdo de página web, com o comando seguinte:

$lynx -justify -nolist -nomargins -image_links -nonumbers -dump www.vivaolinux.com.br > site.txt

essa configurações afrente do comando lynx, é para tentar melhorar a configuração textual dele, pois quando o arquivo é gerado ele cria com alguns caracteres que acaba atrapalhando para o próximo passo, os caracteres são: [,*,+, - e etc... A finalidade é que logo após o arquivo gerado, irei utilizar uma ferramenta chamada tree-tagger ( transforma texto no radical) para depois aplicar no que realmente eu preciso. Então a dúvida seria, é possível com shell realizar essa configuração de remover esses caracteres do texto todo?

Obrigado.


  


2. Re: Formatar texto, tirar [ ], +, *...

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/04/2016 - 15:11h

Depende mesmo de onde se encontram os caracteres no seu texto para que ele saia redondo.
Com o BASH até dá para usar ${variavel//original/substitui} e substitui o texto em "original" pelo "substitui" na variavel. Se o texto no lugar de "substitui" for uma string em branco, então ele apaga.

Fazer com awk pode ser trabalhoso ter que lidar com substituições.

Agora, o jeito mais recomendado para fazer isto é com sed.
Para saber sed, é necessário e obrigatório saber expressões regulares.
Uma referência é http://aurelio.net

Melhor que fazer caso a caso seria se você fosse aprendendo o sed e criasse as expressões conforme seus problemas aparecem.
Até pelo motivo de ser um TCC. Você pode ter talvez que acrescentar isto.

Outra possibilidade é aprender PERL, que é mais poderoso que shell, sed e awk juntos para este tipo de serviço.
Sem se esquecer que também precisa saber expressões regulares.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Formatar texto, tirar [ ], +, *...

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/04/2016 - 16:05h

K3LV!N escreveu:

Olá pessoal tranquilo?
Estou fazendo meu TCC, e realizando alguns testes com o navegador em modo texto lynx, na verdade estou utilizando como uma ferramenta de captura de conteúdo de página web, com o comando seguinte:
$lynx -justify -nolist -nomargins -image_links -nonumbers -dump www.vivaolinux.com.br > site.txt
essa configurações afrente do comando lynx, é para tentar melhorar a configuração textual dele, pois quando o arquivo é gerado ele cria com alguns caracteres que acaba atrapalhando para o próximo passo, os caracteres são: [,*,+, - e etc... A finalidade é que logo após o arquivo gerado, irei utilizar uma ferramenta chamada tree-tagger ( transforma texto no radical) para depois aplicar no que realmente eu preciso. Então a dúvida seria, é possível com shell realizar essa configuração de remover esses caracteres do texto todo?
Obrigado.

Boa tarde, K3LV!N.
Segue a dica:
lynx -justify -nolist -nomargins -image_links -nonumbers -dump www.vivaolinux.com.br|sed 's/\*\|\+\|-//' > site.txt 

O Comando:
sed 's/\*\|\+\|-//' 

Troca * + e - por NADA ("//")
Será trocado somente a primeira ocorrência de cada linha, para TROCAR TODAS, faça:
sed 's/\*\|\+\|-//g' 


OBS.: A"\" antes do * e do +, é necessária, pois são metacaracteres.
Mais informações sobre, veja em:
http://aurelio.net/regex/guia/metacaracteres.html 


----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo






4. Re: Formatar texto, tirar [ ], +, *...

Kelvin
K3LV!N

(usa Outra)

Enviado em 02/04/2016 - 20:21h

Nossa, praticamente deu certo quase tudo, somente utilizando o SED, mas estou querendo tirar outros metacaracteres, como por exemplo: ( ) e < > não consegui expressa no comando do SED:

sed 's/\(\|\)\|//g' - isso nao da certo. Tem alguma maneira de fazer isso?


5. Re: Formatar texto, tirar [ ], +, *...

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/04/2016 - 22:34h

Em expressões regulares os parêntesis tem significado próprio.
Quando se usa o comando sed, com as instruções e sem parâmetros, o parêntesis para ser interpretado como expressão regular deve ser escapado, isto é, usado com a contrabarra \.

\( ----> isto é parêntese de expressão regular
( ----> isto é parêntese comum

Então se você quer eliminar parêntesis use como ( e ) sem \ sendo bem simples.

Como os caracteres > e < não possuem significado em expressões regulares de sed basta colocá-los nas instruções de substituição.

Este comando faz algo do tipo que você quer: sed 's/[*<>\]//g'

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



6. Nossa parece que esta tudo fluindo conforme o esperado!

Kelvin
K3LV!N

(usa Outra)

Enviado em 03/04/2016 - 00:10h

Boa noite amigos, desde já agradeço muito a ajuda do senhores.

Como podem ver, consegui limitar muita coisa, antes de passar pelo programa tree-tagger, no qual transforma o texto em radical, veja o exemplo como ficou o arquivo pegando do site do VOL:

https://goo.gl/Bkh6K6


Gostaria de saber se há possibilidade de conseguir capturar agora, as palavras que se tornaram no radical, elas estão todas do lado direto da tela.

Ex:
login VMI unknown
cadastrese NCFS unknown
darkblurbg AQ0 unknown
oracle VMI unknown
virtualbox NCMS unknown
mostrar VMN mostrar
como CS como
podemos VMI poder

No caso gostaria de pegar o conteúdo de podemos > poder

Muito obrigado desde já!!!


7. Re: Formatar texto, tirar [ ], +, *...

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/04/2016 - 11:17h

Se forem apenas três colunas, coloque

awk '{ print $3 }'

na saída, logo após o sed. Com a barra | igual a como foi feito antes.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



8. Re: Formatar texto, tirar [ ], +, *...

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 04/04/2016 - 18:50h

K3LV!N escreveu:

Nossa, praticamente deu certo quase tudo, somente utilizando o SED, mas estou querendo tirar outros metacaracteres, como por exemplo: ( ) e < > não consegui expressa no comando do SED:

sed 's/\(\|\)\|//g' - isso nao da certo. Tem alguma maneira de fazer isso?


Boa noite, K3LV!N.
Para "LIMPAR":
 * + - ( )[ ] < >  


Use o comando:
lynx -justify -nolist -nomargins -image_links -nonumbers -dump www.vivaolinux.com.br|sed 's/\*\|\+\|-\|(\|)\|\[\|]\|<\|>//g' > site.txt 


----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
----------------------------------------------------------------------------------------
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos, o que
incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo





9. Re: Formatar texto, tirar [ ], +, *...

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 04/04/2016 - 20:15h

K3LV!N escreveu:

Boa noite amigos, desde já agradeço muito a ajuda do senhores.

Como podem ver, consegui limitar muita coisa, antes de passar pelo programa tree-tagger, no qual transforma o texto em radical, veja o exemplo como ficou o arquivo pegando do site do VOL:
https://goo.gl/Bkh6K6
Gostaria de saber se há possibilidade de conseguir capturar agora, as palavras que se tornaram no radical, elas estão todas do lado direto da tela.

Ex:
login VMI unknown
cadastrese NCFS unknown
darkblurbg AQ0 unknown
oracle VMI unknown
virtualbox NCMS unknown
mostrar VMN mostrar
como CS como
podemos VMI poder
No caso gostaria de pegar o conteúdo de podemos > poder
Muito obrigado desde já!!!


Boa noite, K3LV!N.
Segue uma sugestão:

while IFS=" " read -r Ca Cb Cc;do
if [ $Cc != $Ca ];then
Ct=$(sed 's/.$//' <<< "$Cc")
echo "$Ca $Cb" > word_temp
if egrep -q "$Ct" word_temp;then
echo "$Ca $Cb $Cc"
fi
fi
done < words

SAÍDA:
cadastrese NCFS cadastro
mostrando VMN mostrar
podemos VMI poder

Onde:
cat words
login VMI login
cadastrese NCFS cadastro
darkblurbg AQ0 unknown
oracle VMI unknown
virtualbox NCMS unknown
mostrando VMN mostrar
como CS como
podemos VMI poder


----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
----------------------------------------------------------------------------------------
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos, o que
incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo



10. Quase tudo certo PART II....

Kelvin
K3LV!N

(usa Outra)

Enviado em 06/04/2016 - 17:30h

Pessoal nem sei como agradecer, exatamente conforme eu precisava esta fluindo, ainda vou ficar aqui enchendo vocês um tempinho, pois tenho dúvidas meio básicas de como formatar melhor o texto que preciso utilizar, como por exemplo, depois que fiz a configuração do jeito que eu precisava, peguei a 3 coluna como o nosso amigo acima ajudou, precisava saber como removo os espaços em branco que retornou na saida.

Ex:
navegar


famoso

etc
tecnologia
vídeo
email
central


Como pode ver depois da palavra navegar no meu texto de saida ficou como se estivesse dado uns 3 ENTERs dentro do arquivo, como removo isso?

Obrigado


11. Re: Formatar texto, tirar [ ], +, *...

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/04/2016 - 18:02h

Isto aqui pode servir:

sed '/^\s*$/d'

Teste colocando ao final da linha.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



12. Re: Formatar texto, tirar [ ], +, *...

Kelvin
K3LV!N

(usa Outra)

Enviado em 06/04/2016 - 19:53h

listeiro_037 deu certo cara!!! muito top!

Agora é possível eu consigo fazer uma quebra de texto assim?

Arquivo assim:

famoso
casa
nano
carro

Ficar assim:
famoso,casa,nano,carro



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts