split comando na linha de comando do Ubuntu

1

Eu quero dividir um arquivo em vários arquivos com no máximo 25 linhas cada.

Estou usando isso:

split -l 25 /etc/adduser.conf > /home/ubuntu/PL/trab3/rc_

Mas eu não recebo os arquivos que espero.

Como posso obter arquivos com nomes de arquivos como rc_01, rc_02, etc?

    
por pedro 26.03.2010 / 18:59

2 respostas

8

O redirecionamento (o sinal > ) é manipulado pelo shell e só pode ser enviado para um único arquivo, o arquivo que você nomeia. Omita o > , para que /home/ubuntu/PL/trab3/rc_ seja passado para split como um argumento de linha de comando, para que possa usá-lo como prefixo de saída.

    
por 26.03.2010 / 19:06
1

A divisão não suporta o sufixo para nomes de arquivos de saída. AFAIK suporta apenas prefixo. Para arquivos de texto, você pode tentar o awk:

awk 'NR% 25 == 1 {i + = 1; file="/ home / ubuntu / PT / trab3 / rc" "_" sprintf ("% 02d", i)} {print > arquivo} '/etc/adduser.conf

    
por 01.05.2015 / 02:31