Expressão Regular

1. Expressão Regular

Marcelo Matos
zwe

(usa Ubuntu)

Enviado em 16/06/2015 - 17:04h

Pessoal;

Alguém conhece alguma expressão que localize em um arquivo de LOG palavras em inglês?

Procurei pela internet algo sobre isso e não obtive êxito. Nem sei se em Shell Script possa criar algo para isso, ou se precisaria envolver outra linguagem que contenha algum modulo/api para tal.

Grato quem puder ajudar.

Abraços.




  


2. Re: Expressão Regular

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/06/2015 - 18:26h

Eu não tenho muita ideia do que vc quer, mas parece-me algo que com grep resolve-se.
Você quer uma lista de palavras e que verifique palavra a palavra?
--
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: Expressão Regular

Marcelo Matos
zwe

(usa Ubuntu)

Enviado em 16/06/2015 - 18:29h


Olá listeiro_037 , blz?

Então, com GREP eu teria que ter uma base de dados de palavras para consultar. Queria saber se existe algo, alguma expressão regular que faça uma verificação em uma palavra e a identifique sendo da língua inglesa.

Motivo: Tenho um LOG com diversas palavras sem nenhum tipo de padrão e queria separar as palavras em inglês com as de português.

Grato.




4. Re: Expressão Regular

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/06/2015 - 18:39h

Eu nunca procurei saber, mas parece-me que o caminho mais simples é verificar palavra a palavra através de uma lista.
Inglês tem palavras cognatas, você pode criar uma lista de palavras standard, do tipo de palavras mais comuns em arquivos de logs.
As pesquisas de Google que usam a expressão "regex english word" caem em páginas do Stack Overflow, fórum sobre programação.

http://www.visca.com/regexdict/intro.html
http://stackoverflow.com/questions/4621816/perl-regular-expression-for-english-word
http://stackoverflow.com/questions/8961833/regular-expression-to-match-english-words-with-some-other...

Inclusive apareceu um código de Perl que usa um módulo(?) chamado Lingua, que divide o texto em frases, palavras, sinais etc. Quase que tokens:

use strict; use warnings;
use Lingua::EN::Splitter qw(words);

my @words = words $input_text;
print @words;


--
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


5. Re: Expressão Regular

Marcelo Matos
zwe

(usa Ubuntu)

Enviado em 16/06/2015 - 18:44h


Olá;

Muito bom :)

Jà imaginava que com Shell não iria fugir muito do famoso GREP e comando de comparação mesmo rs.

Não queria ir muito para Perl ou Python, porque não conheço muito (preciso e tenho que aprender!), e Shell é infinitamente mais fácil.

Por fim, muito obrigado pela ajuda :)

Abraços.


6. Re: Expressão Regular

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/06/2015 - 19:45h

Se quiser insistir no bash, você pode fazer um script para percorrer linha por linha e verificar se existe as palavras que você quer. Essas palavras são armazenadas em um array (fazendo o papel de um simples banco de dados). Veja um exemplo bem simples:


#!/bin/sh

arquivo_log='arquivo.log'
# As palavras são setadas aqui
array=(
'palavra1' 'palavra2' 'palavra3' 'palavra4'
)

((line_count = 0))
((array_length = ${#array[ @ ]}))

# percorre todas as linhas procurando todas as palavras de $array
while read LINHA; do
for ((i = 0; i < array_length; i++)); do
if (echo $LINHA | grep -q ${array[ i ]}); then
((++line_count))
fi
done
done < "$arquivo_log"

# Informa quantas palavras em $array foram encontradas no arquivo
echo "Foram encontradas $line_count palavras em inglês no arquivo $arquivo_log"



Se quiser copiar esse script, lembre-se de remover os espaços dos colchetes []


7. Re: Expressão Regular

Marcelo Matos
zwe

(usa Ubuntu)

Enviado em 16/06/2015 - 19:52h


Olá ru4n

Muito bom mesmo!

A principio ficarei no Shell, porque esse trabalho precisa ser pra ontem e não tenho tempo para estudar uma nova linguagem.

Muito grato pelo script feito!

Analisarei e acredito que precisa apenas de alguns ajustes. Foi de grande valia.

Grande abraço.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts