[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
- Tratamento de texto, Sérgio Roberto, 2007/02/15
- Re: [shell-script] Tratamento de texto,
Tiago Barcellos Peczenyj <=