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