Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

1. Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

Gabi
GabiS

(usa Ubuntu)

Enviado em 11/02/2021 - 10:47h

Olá pessoal, estou tentando desenvolver um script para ler um arquivo como no exemplo a abaixo:

calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0


Eu gostaria de ler linha por linha e separar cada linha em arquivos diferentes pelo nome que está no primeiro campo, assim:

arquivo1.dat
calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0

arquivo2.dat
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0

arquivo3.dat
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0

Alguém poderia me ajudar?


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/02/2021 - 19:43h

GabiS escreveu:

Olá pessoal, estou tentando desenvolver um script para ler um arquivo como no exemplo a abaixo:

calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0


Eu gostaria de ler linha por linha e separar cada linha em arquivos diferentes pelo nome que está no primeiro campo, assim:

arquivo1.dat
calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0

arquivo2.dat
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0

arquivo3.dat
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0

Alguém poderia me ajudar?

Boa noite GabiS,
Segue sugestão:
awk -F"," '{print > $1".dat"}' arquivo.txt 

Os arquivos gerados, são nomeados com o conteúdo do campo $1:
awk -F"," '!($1 in array) { array[$1]; print $1".dat" }' arquivo.txt 

calculate_information_gain.dat
Fit.dat
majorite_vote.dat

É isso....


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


3. Re: Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 11/02/2021 - 11:09h

Vc pode fazer grep buscando o 1o campo como string de busca e redirecionando para o arquivo desejado.


4. Re: Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

Gabi
GabiS

(usa Ubuntu)

Enviado em 11/02/2021 - 13:27h

leandropscardua escreveu:

Vc pode fazer grep buscando o 1o campo como string de busca e redirecionando para o arquivo desejado.


Assim?

grep "majority_vote" arquivo.dat > arquivo1.dat



5. Re: Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 11/02/2021 - 19:06h

GabiS escreveu:

leandropscardua escreveu:

Vc pode fazer grep buscando o 1o campo como string de busca e redirecionando para o arquivo desejado.


Assim?

grep "majority_vote" arquivo.dat > arquivo1.dat


grep calculate_information_gain teste.txt > saida01.txt
grep majorite_vote teste.txt > saida02.txt
grep Fit teste.txt > saida03.txt

em script poderia ser
cat teste.txt | cut -d',' -f1| sort | uniq | xargs -I {} sh -c 'grep $1 teste.txt > "$1.txt"' -- {}
lendo arquivo teste.txt e salvando com o nome unico da 1a coluna


6. Re: Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

Gabi
GabiS

(usa Ubuntu)

Enviado em 12/02/2021 - 10:13h

msoliver escreveu:

GabiS escreveu:

Olá pessoal, estou tentando desenvolver um script para ler um arquivo como no exemplo a abaixo:

calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0


Eu gostaria de ler linha por linha e separar cada linha em arquivos diferentes pelo nome que está no primeiro campo, assim:

arquivo1.dat
calculate_information_gain,1807383503.4045517,3256.28,94543.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0
calculate_information_gain,1607383503.4113085,3221925,91003.0,None,0
calculate_information_gain,1807383503.4179888,3189489,91553.0,None,0

arquivo2.dat
majorite_vote,1607383503.4113085,3221925,91003.0,None,0
majorite_vote,1907383503.4179888,3189489,91553.0,None,0

arquivo3.dat
Fit,1607383503.4113085,3221925,91003.0,None,0
Fit,1607383503.4179888,3189489,91553.0,None,0

Alguém poderia me ajudar?

Boa noite GabiS,
Segue sugestão:
awk -F"," '{print > $1".dat"}' arquivo.txt 

Os arquivos gerados, são nomeados com o conteúdo do campo $1:
awk -F"," '!($1 in array) { array[$1]; print $1".dat" }' arquivo.txt 

calculate_information_gain.dat
Fit.dat
majorite_vote.dat

É isso....


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________

Obrigada, funcionou!



7. Re: Ler arquivo e separar as linhas em outros arquivos de acordo com o conteúdo do primeiro campo [RESOL

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/02/2021 - 16:13h

Boa tarde Gabis.
Obrigado pela melhor resposta.... :)


______________________________________________________________________
Att.: Marcelo Oliver