Para garantir que não haja quebra de linha, você pode usar outra opção além de c
.
split -n #number
divida um arquivo por #number pedaços para que você possa ter certeza de que eles são iguais e mais nenhuma quebra de linha.Exemplo
split -n 4 file.txt
Isso dividirá o arquivo.txt em 4 partes.
OU você pode dividir pelo número de linhas
split -l #number-of-lines
exemplo
split -l 200 file.txt
Isso dividirá o arquivo.txt em arquivos, cada um com 200 linhas. Mas isso não é exato, pois todos são do mesmo tamanho, já que o último arquivo pode ser menor que o número escolhido.
Agora, no que diz respeito à nomenclatura. O padrão da divisão de comandos é usar um sufixo padrão "x" e os prefixos padrão "aa" "ab" "ac" ...
Portanto, para alterar esses padrões, você precisa declarar um sufixo a ser usado.
no seu caso, você pode usar
split -n #number file1_1.txt file1_1.
A saída seria como file1_1.aa file1_1.ab file1_1.ac
Senão você pode alterar o prefixo padrão para ser numérico usando -d
split -n #number -d file1_1.txt file1_1.
A saída seria como file1_1.00 file1_1.01 file1_1.02
Assim, você não pode obter o nome desejado com a divisão padrão, a menos que use awk
ou sed
com REGEX.
Agora, para ler o conjunto de arquivos de um arquivo, vamos chamar files.list
while IFS= read -r file
do split -n #number -d "$file" "$file"
done < files.list
ATUALIZAÇÃO: cheguei a esta link
De acordo com a segunda resposta
% bl0ck_qu0te%Portanto, no seu caso, se a sua versão dividida for > 8,16, então você poderá fazer a sua necessidade assim
split -n #number -d --additional-suffix=.txt file1_1.txt file1_1-
Assim, a saída seria como
file1_1-00.txt file1_1-01.txt file1_1-02.txt .....