Dividir arquivo com base no tamanho, mas certifique-se de que ele termine com a nova linha

2

Eu posso usar o comando split para dividir arquivos grandes em vários arquivos menores. Isso está sendo alcançado seguindo o comando

split -b 1G $temp_path $final_filepath

Mas apenas a ressalva é que esses arquivos muitas vezes contêm a última linha que é dividida em dois arquivos. Existe alguma maneira de evitar isso usando split ou qualquer outro comando?

    
por Confused 03.04.2017 / 21:15

1 resposta

2

Sim, não use o parâmetro -b . A partir da página man split (1):

-b, --bytes=SIZE put SIZE bytes per output file

-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file

-l, --lines=NUMBER put NUMBER lines per output file

Ao usar -b , você está dizendo ao split para delinear arquivos em um tamanho específico em bytes (ou Kb ou MB). Se isso é o meio de uma linha, muito ruim.

Dividir suporta 'número de linhas' e 'tamanho máximo do arquivo de saída composto por linhas inteiras'.

Em vez disso, tente isto:

split -C 1G $temp_path $final_filepath
    
por 03.04.2017 / 21:22