Script para separar arquivos

1. Script para separar arquivos

Joao Vitorino junior
akbar415

(usa Red Hat)

Enviado em 10/03/2009 - 05:17h

Preciso criar um script para separar partes de um arquivos.
Preciso pegar a partir da palavra "ABCD" até a palavra "cda". Até ai ta fácil, o problema é que essas palavras parecem varias vezes.
Exemplo do arquivo:
ABCD
....bla bla bla
cda
....bla bla bla
ABCD
...bla bla bla
cda

Ou seja quero pegar do primeiro ABCD até o primeiro cda e jogar em outro arquivo, do segundo ABCD até o segundo cda. E continuar fazendo isso até que o arquivo acabe.

Podem me ajudar a fazer isso.


  


2. Re: Script para separar arquivos

Marciano R Souza
marcianosouza

(usa KUbuntu)

Enviado em 10/03/2009 - 18:07h

Já fiz algo parecido usando os comandos "tail head e grep" dentro de um "for"... mas não foi tão simples.
Se possível manda seu arquivo ou parte dele para que eu possa entender melhor, e assim talvez possa te ajudar.


3. Re: Script para separar arquivos

Denis Doria
thuck

(usa Debian)

Enviado em 10/03/2009 - 23:36h

Isso deve ajudar:

thuck@thuck:~/test$ cat mm
ABCD
x
x
x
x
x
c
cda
ABCD
d
d
d
cda
ABCD
f
g
d
d
d
d
v
cda
thuck@thuck:~/test$ grep -n ^ABCD mm |cut -d: -f1|while read LINE; do sed ${LINE},'/cda/!d' mm > $LINE; done
thuck@thuck:~/test$ ls
1 14 9 mm
thuck@thuck:~/test$ cat 1
ABCD
x
x
x
x
x
c
cda
thuck@thuck:~/test$ cat 14
ABCD
f
g
d
d
d
d
v
cda
thuck@thuck:~/test$




4. Resolvido

Joao Vitorino
Joao_Vitorino

(usa Red Hat)

Enviado em 13/03/2009 - 03:44h

funcionou obrigado, mas restaram algumas dúvidas que postei na comunidade do sed/Awk/ER


5. Re: Script para separar arquivos

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 17/03/2009 - 10:27h

Se o arquivo sempre tem como header uma string como ABCD, você poredia usar o CSPLIT. ex:

csplit -k -f PARTE arqinteiro "/^ABCD/" {99}
...................|...........|..............|_______string cabeçalho
...................|...........|________ Nome do arquivo que será particionado
...................|_________ Nome dos arquivos que serao gerados neste caso PARTE00 à PARTE99

É uma solução simples, mas pode ajudar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts