Como dividir arquivo texto em vários.

1. Como dividir arquivo texto em vários.

Gustavo Gouveia
gustavogouveia

(usa Debian)

Enviado em 11/05/2018 - 11:53h

Pessoal, estou com a seguinte dúvida.
Quero dividir um arquivo texto em vários utilizando o critério da linha em branco. Toda vez que aparecer uma linha em branco
criar um novo arquivo com o conteúdo que estiver entre aquela linha em branco e a proxima.
exemplo:

[pessoa1]
nome
numero

[pessoa2]
nome
nnumero
cpf
email

neste caso, gostaria de ter os arquivos pessoa1.txt e pessoa2.txt
Agradeço desde já a ajuda.


  


2. Re: Como dividir arquivo texto em vários.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 11/05/2018 - 13:40h

Vejaí se serve:
awk -v RS= '{print > ("pessoa-" NR ".txt")}' arquivo.txt 



3. Re: Como dividir arquivo texto em vários.

Gustavo Gouveia
gustavogouveia

(usa Debian)

Enviado em 11/05/2018 - 15:28h

Ryuk escreveu:

Vejaí se serve:
awk -v RS= '{print > ("pessoa-" NR ".txt")}' arquivo.txt 


cara, é quase isso. só tem um problema. na parte "pessoa" isso é um exemplo.
o que eu preciso mesmo é, o que tiver entre [ ] no será o nome do arquivo. O resto ta perfeito.
EX:
[arvore]
nome
cpf

o nome do arquivo ficaria "arvore.txt"


4. Re: Como dividir arquivo texto em vários.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 11/05/2018 - 18:30h

Testaí:
#!/bin/bash

ARQ=arquivo.txt

awk -v RS= '{print > ("parte-" NR ".txt")}' $ARQ

ls -1 parte-*.txt | while read file;
do
mv "$file" "$(head -1 $file | sed 's/\W//g')"
done



5. Re: Como dividir arquivo texto em vários.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/05/2018 - 19:30h

gustavogouveia escreveu:

Pessoal, estou com a seguinte dúvida.
Quero dividir um arquivo texto em vários utilizando o critério da linha em branco. Toda vez que aparecer uma linha em branco
criar um novo arquivo com o conteúdo que estiver entre aquela linha em branco e a proxima.
exemplo:

[pessoa1]
nome
numero

[pessoa2]
nome
nnumero
cpf
email

neste caso, gostaria de ter os arquivos pessoa1.txt e pessoa2.txt
Agradeço desde já a ajuda.


Boa noite, só falta tirar os colchetes....
awk 'BEGIN{FS="\n";RS="\n\n"} {print > $1".txt"}' arquivo.txt

att.:
marcelo oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts