split -l
é o melhor que você pode fazer de forma nativa em Mac OS X . Com GNU coreutils , você pode usar split -C 900k
. Você pode instalar o GNU coreutils no OSX, por exemplo, através de Portas Darwion ou Fink ou MacPorts .
Eu tenho um arquivo de texto grande, que eu preciso dividir em uma série de arquivos menores (menos de 1 MB). Parece que split
é o que eu quero aqui.
No entanto, se eu tentar o seguinte (usando 900k como limite para fornecer algum buffer antes do limite máximo de 1MB):
split -a 2 -b 900k total.sql createtables_
Isso fará com que cada parte tenha exatamente 900k (exceto a última parte), provavelmente dividindo as linhas nos locais onde ela divide o arquivo.
Existe uma maneira de dividir apenas os limites da linha? Em outras palavras, fazer com que as peças fiquem o mais próximo possível (sem ultrapassar) o limite especificado no argumento -b
, garantindo que ele apenas se divida nos limites da linha?
Ou a única opção é usar a opção -l
para dividir para dividir com base na contagem de linhas e usar tentativa e erro para localizar o parâmetro que mantém todos os arquivos abaixo do limite?
Ou a split
não é a ferramenta certa para usar?
split -l
é o melhor que você pode fazer de forma nativa em Mac OS X . Com GNU coreutils , você pode usar split -C 900k
. Você pode instalar o GNU coreutils no OSX, por exemplo, através de Portas Darwion ou Fink ou MacPorts .
Não tem certeza de qual versão de split
você está usando, mas já tentou a opção --line-bytes=BYTES
? No meu sistema, ele também pode ser inserido como -C BYTES
.
Tags macos file-management