Usando o comando split do Linux para criar N Files

0

Preciso dividir os arquivos em número garantido de intervalos. O tamanho não precisa ser igual.

Aqui está minha lógica

count = wc -l filename
split_count = (count)/4
split -l split_count filename core_

Às vezes, se eu alterar o número de 4 para outro número, ele me dá N + 1 número de depósitos. Existe uma maneira melhor de criar exatamente N buckets?

    
por Hennes 02.10.2011 / 01:30

1 resposta

2

Provavelmente, o resultado do uso da aritmética inteira às vezes causará um valor um pouco pequeno demais.

Por exemplo, 1001 / 4 é 250 , mas quatro lotes de 250 linhas não farão todas as 1001 linhas que você possui.

Você pode modificar sua lógica para aumentar esse valor até que quatro deles sejam pelo menos tão grandes quanto o arquivo, algo como:

count = wc -l filename
split_count = (count)/4
while split_count * 4 < count:           # Add these
    split_count++                        #   two lines.
split -l split_count filename core_

Você também pode arredondar para o próximo múltiplo de N para garantir que seja suficiente, algo como:

split_count = (count + N - 1) / N
    
por 02.10.2011 / 01:42

Tags