Utilizando PowerShell para quebrar/dividir um arquivo em vários

Ler um arquivo texto de 200.000 linhas é uma tarefa complicada… talvez impossível, dependendo do seu computador. Todavia, se você conseguir quebrar este arquivo em n arquivinhos menores, a vida fica mais fácil… especialmente se você conseguir dividir a tarefa com n coleguinhas de trabalho. 🙂

Abaixo está um comando do PowerShell que vai dividir seu mega arquivo texto em vários pequenos.

A ideia deste comando é criar um novo arquivo a cada n linhas lidas. Veja o exemplo abaixo:

$i=0; Get-Content d:\temp\teste.txt -ReadCount 100 | %{$i++; $_ | Out-File d:\temp\out_$i.txt}

O argumento -ReadCount 100 vai definir quantas linhas serão lidas de uma vez. No nosso caso, ela vai definir o tamanho de linhas que serão utilizadas para dividir o arquivo grande em varios pequenos. Neste exemplo, a cada 100 linhas, um novo arquivo texto será gerado. Se você aumentar este valor para 1000, a  cada 1000 linhas, um novo arquivo será gerado.

Atenção: Quanto maior este numero, mais demorado será o processo de geração dos arquivos.

No comando Out-File d:\temp\out_$i.txt, definimos o local e o padrão para o nome dos arquivos que serão gerados. o $i será substituído por um sequencial. Exemplo: Se forem gerados 10 arquivos, os nomes deles serão: out_1.txt, out_2.txt, out_3.txt, etc…

 

Espero ter ajudado.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in .Net, Dev and tagged , , , , , , , , , .