Dividir o comando para criar um arquivo com um número como nome de arquivo

4

Estou usando o comando split para dividir um arquivo de 40 GB. Eu quero que os arquivos divididos resultantes sejam nomeados usando números incrementais começando de 1 como 1, 2, 3. . .

Isso é possível?

No momento, estou usando o comando split --numeric-suffixes=1 -l 2 t5 e obtendo nomes de arquivos da seguinte forma:

x01  x02  x03  x04  x05  x06  x07  x08  x09  x10  x11  x12  x13  x14  x15  x16  x17
    
por Noor 19.04.2017 / 15:51

1 resposta

8

Usando GNU split , sim:

split --numeric-suffixes=1

usará sufixos numéricos, começando em 1. (Você ainda precisa especificar um prefixo se não quiser o padrão x .)

Para obter nomes de arquivos que são apenas números, você pode especificar um prefixo vazio:

split --numeric-suffixes=1 -l 2 t5 ""

split sempre usa sufixos do mesmo tamanho, então o padrão produz 01 , 02 etc. Se você quiser evitar zeros à esquerda, você precisa pós-processar o resultado (e viver com o sub-item comportamento ideal de classificação):

rename 's/^0+//' 0*

Você também precisa garantir que o comprimento do sufixo split ofereça espaço suficiente para todos os arquivos necessários. o padrão, dois dígitos, permite 99 arquivos se você começar de 1. Você pode especificar mais dígitos usando -a , por exemplo. -a 3 , -a 4 , etc.

( split pára quando fica sem sufixos, com um erro. Se você mantiver seus padrões, aumentará automaticamente o comprimento do sufixo conforme necessário, mas dando um sufixo de início desabilita isso.)

    
por 19.04.2017 / 15:53