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

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

Re: [shell-script] Tratamento de texto


From: Sérgio Roberto
Subject: Re: [shell-script] Tratamento de texto
Date: Thu, 15 Feb 2007 16:32:04 -0300
User-agent: Thunderbird 1.5.0.9 (Windows/20061207)

Tiago,

Valeu pela dica. Funcionou muito bem a solução que vc me apresentou.
O único problema foi q o diretório onde os "pedaços" do arquivo foram
gravados extrapolou o tamanho inicial do arquivo de 190MB para -
sem zueira - 700MB, quase 270 % à mais que o original. Como essa
é uma lista de shell script, vou tentar encontrar a solução dessa aberração
na "linux-board".

Valeu a ajuda!

Sds
Sergio

Tiago Barcellos Peczenyj escreveu:
>
> Sergio
>
> existem muitas formas, uma delas ler o arquivo, redirecionar para um
> determinado arquivo e, quando chegar nessa linha, mudar o nome do
> arquivo que vc esta redirecionando.
>
> Veja este exemplo:
>
> $ cat xxx
> um
> dois
> tres
> * Quebra de Registro *
> quatro
> cinco
> seis
> * Quebra de Registro *
> sete
> oito
> nove
> dez
>
> $ awk '/Quebra de Registro/{i++;next}
> {arquivo=sprintf("%s.%d",FILENAME,i)
> print arquivo
> }' xxx
>
> xxx.0
> xxx.0
> xxx.0
> xxx.1
> xxx.1
> xxx.1
> xxx.1
> xxx.2
> xxx.2
> xxx.2
> xxx.2
> xxx.2
>
> o que eu fiz? o nome do arquivo para onde eu vou redirecionar eh o
> nome do arquivo seguido por um ponto + um numero sequencial.
>
> bom, se vc trocar o
>
> print arquivo
>
> por
>
> print $0 >> arquivo
>
> vc vai adicionar sempre toda a linha que o awk ler $0 no final do
> arquivo cujo nome esta definido nessa variavel
>
> o uso do next é interessante, experimente remove-lo ;-)
>
> On 2/15/07, Sérgio Roberto <address@hidden 
> <mailto:sergio%40aduaneiras.com.br>> wrote:
> >
> >
> >
> >
> >
> >
> > Bom dia,
> >
> > Estou com um problema e gostaria de obter ajuda dos colegas da lista.
> > Eu recebo mensalmente um arquivo contendo todas as normas de um
> > determinado tribunal federal, em formato texto. São jurisprudências.
> > É um arquivo de 190 MB (de texto) que quando é atualizado é remetido
> > integralmente de novo para mim. Logo, esses 190 MB crescem mês à mês.
> > Pelas contas há cerca de 500.000 normas dentro deste arquivo.
> >
> > Eu desenvolvi um script para quebrar esse arquivo em várias partes
> > menores, com 2 MBs, para que eu pudesse comparar as alterações
> > nas normas, usando o comando "split" dentro do Shell Script. Contudo,
> > observei que é há uma linha em particular dentro desse arquivo:
> >
> > " *** Quebra de Registro *** "
> >
> > Então, tive a idéia de quebrar esse arquivo de 190 MB não em partes
> > iguais de 2 MB mas por normas. Ou seja, cada vez que o script
> > encontrar a linha acima, ele irá gerar um novo arquivo em determinado
> > diretório. Gostaria de uma ajuda para começar a fazer isso já que
> > ainda não entendi muito bem como o shell script funcionaria neste
> > caso.
> >
> > Sds
> > Sérgio
> >
> > __________________________________________________________
> > Essa mensagem é destinada exclusivamente ao seu destinatário e pode
> > conter informações confidenciais, protegidas por sigilo profissional ou
> > cuja divulgação seja proibida por lei. O uso não autorizado de tais
> > informações é proibido e está sujeito às penalidades cabíveis.
> >
> > This message is intended exclusively for its addressee and may contain
> > information that is confidential and protected by a professional
> > privilege or whose disclosure is prohibited by law. Unauthorized use of
> > such information is prohibited and subject to applicable penalties.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
> -- 
> Tiago B Peczenyj
> Linux User #405772
>
> # cd /pub
> # more beer
>
> 
>
> __________ NOD32 2061 (20070214) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.eset.com


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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