shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Achar qualquer coisa em 2 arquivos


From: César A . K . Grossmann
Subject: Re: Achar qualquer coisa em 2 arquivos
Date: Mon, 22 Sep 2003 12:42:50 -0000
User-agent: eGroups-EW/0.82

--- Em address@hidden, "Luciano ES" <luc-groups@b...>
escreveu
>       Estou tentando imaginar uma forma de fazer o seguinte: encontrar, em um
> arquivo, todas as ocorrências de qualquer string que também ocorra em
> outro arquivo. Por exemplo:

Você quer ver as frases em que se encontram as palavras, ou interessa
apenas ver quais as palavras presentes em um e outro arquivo?

Independente do que você queira, você não precisa usar nenhuma
linguagem de script para fazer o que queres.

O grep tem uma opção que diz para ele buscar os padrões de busca em um
outro arquivo. Podemos transformar o arquivo 2 em um arquivo deste
tipo fazendo algo do tipo (uma linha só, se o seu navegador dividir a
linha em duas, cole novamente para executar):

cat arq2 | tr "[:punct:]" " " | xargs -n 1 | sort -u > palavras.txt

A seguir, usamos este arquivo no grep para achar as linhas que contém
alguma daquelas palavras:

grep -f palavras.txt arq1

Se você quer apenas as palavras que aparecem em um e outro arquivo,
então use o seguinte comando:

cat arq1 | tr "[:punct:]" " " | xargs -n 1 | sort -u | grep -f
palavras.txt > palavras_coincidentes.txt

Note que eu não estou filtrando por tamanho das palavras, assim, se a
conjunção "e" existe nos dois arquivos, ela aparecerá na saída, mas as
palavras aparecerão apenas *uma* vez na saída, não importando quantas
vezes elas aparecem no texto original (o "sort -u" coloca em ordem
alfabética e elimina as repetições).

P.S.: Estás tentando montar um vocabulário?
[]s
--
César A. K. Grossmann
http://www.LinuxByGrossmann.cjb.net/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]