O comando split
Dica publicada em Linux / Comandos
O comando split
O comando split é usado para dividir determinado arquivo em pedaços menores, muito útil quando se tem dois disquetes e um arquivo de 2Mb, por exemplo. Divide-se o treco em dois pedaços de 1Mb e manda pro baú.
Um exemplo real aconteceu comigo nesse mês, tinha um script em Perl para pegar informações do arquivo de log do sendmail, no início esse arquivo tinha 90Mb, porém seu tamanho foi crescendo e crescendo até que passou da casa dos 250Mb. Resumindo, tornara-se impossível tratar um arquivo de 250Mb com um script interpretado. A solução encontrada foi split nele.
Você tem duas opções ao dividir um arquivo: por número de linhas ou número de bytes. Para dividir por número de linhas, use a seguinte sintaxe:
split --lines=1000 arquivo.txt
Isso irá gerar N arquivos com 1000 linhas cada. Se optar pela quantidade de bytes, use:
split --bytes=1073741824 backup.tar.gz
Que irá gerar N arquivos com 1 Mb cada.
Bom, todos sabemos que 1Kb corresponde a 1024 bytes, 1Mb a 1024Kb,1Gb a 1024Mb e assim por diante. Pois é, se você quer calcular quantos bytes correspondem a 5Mb, podemos usar a calculadora em modo texto chamada bc, vejam:
bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1024*1024*5
5242880
quit
Ah, já ia me esquecendo. Ainda podemos escolher o prefixo dos arquivos gerados, que por padrão saem xaa, xab, xba, .... Se quiser que seus pedacinhos sejam nomeados como pedacinhoa, pedacinhob, ..., use:
split --lines=500 arquivo.txt pedacinho
Atenciosamente, Fábio Berbert de Paula
Um exemplo real aconteceu comigo nesse mês, tinha um script em Perl para pegar informações do arquivo de log do sendmail, no início esse arquivo tinha 90Mb, porém seu tamanho foi crescendo e crescendo até que passou da casa dos 250Mb. Resumindo, tornara-se impossível tratar um arquivo de 250Mb com um script interpretado. A solução encontrada foi split nele.
Você tem duas opções ao dividir um arquivo: por número de linhas ou número de bytes. Para dividir por número de linhas, use a seguinte sintaxe:
split --lines=1000 arquivo.txt
Isso irá gerar N arquivos com 1000 linhas cada. Se optar pela quantidade de bytes, use:
split --bytes=1073741824 backup.tar.gz
Que irá gerar N arquivos com 1 Mb cada.
Bom, todos sabemos que 1Kb corresponde a 1024 bytes, 1Mb a 1024Kb,1Gb a 1024Mb e assim por diante. Pois é, se você quer calcular quantos bytes correspondem a 5Mb, podemos usar a calculadora em modo texto chamada bc, vejam:
bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1024*1024*5
5242880
quit
Ah, já ia me esquecendo. Ainda podemos escolher o prefixo dos arquivos gerados, que por padrão saem xaa, xab, xba, .... Se quiser que seus pedacinhos sejam nomeados como pedacinhoa, pedacinhob, ..., use:
split --lines=500 arquivo.txt pedacinho
Atenciosamente, Fábio Berbert de Paula
:-)