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: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Tratamento de texto
Date: Thu, 15 Feb 2007 08:50:29 -0200

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


reply via email to

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