De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 19 de Junho de 1997
Outro comando também utilizado para se dividir um arquivo em
vários outros é o comando csplit
(Content Split).
O comando csplit
permite que se especifique uma string que irá indicar o
delimitador de cada um dos novos arquivos.
Tomemos como exemplo o arquivo abaixo, chamado arq1:
arq1
Capítulo 1 Era uma vez, era uma vez três porquinhos, Palhaço, Palito e Pedrito. Capítulo 2 E o Lobo Mau, ... Capítulo 3 E o caçador, matou o Lobo Mau, casou-se com a Chapeuzinho Vermelho, e viveram felizes para sempre. The End **
@ Fim arq1**
O autor, colocou todos os capítulos do livro em apenas um arquivo e depois se arrependeu. Agora ele quer criar vários arquivos contendo um capítulo cada. O comando abaixo pode resolver este problema:
$ csplit -f Capit arq1 "/Capitulo/" {2}
$ ls -l
total 4
-rw-r--r-- 1 queiroz supsof 0 Jun 17 18:31 Capit00
-rw-r--r-- 1 queiroz supsof 85 Jun 17 18:31 Capit01
-rw-r--r-- 1 queiroz supsof 29 Jun 17 18:31 Capit02
-rw-r--r-- 1 queiroz supsof 136 Jun 17 18:31 Capit03
-rw-r--r-- 1 queiroz supsof 250 Jun 17 18:11 arq1
Traduzindo, o comando csplit
irá criar vários arquivos iniciados em
"Capit", até um máximo de 3 arquivos (parâmetro {2}, computa-se o número
entre colchetes + 1).
Este valor indica o número de vezes que o comando será repetido.
No nosso exemplo, foi especificado exatamente o número de capítulos contidos no arquivo original (3). Caso não conheçamos este valor, podemos especificar um número que sabemos maior que o número de arquivos existentes.
O comando csplit
irá reclamar, e apagar todos os arquivos já criados. Para
evitarmos que isto aconteça, basta especificar a diretiva "-k
", ou seja,
a reclamação continuará sendo feita, mas o trabalho já feito não será removido.
O que não pode é se especificar um número inferior ao desejado.
Neste caso, o comando ficaria como:
$ csplit -k -f Capit arq1 "/Capitulo/" {9}
0
85
29
csplit: {9} - out of range
136
A quebra será feita, tomando-se por base o nosso exemplo, antes da string Capitulo, exclusive. Devido a isto, o primeiro arquivo, Capit00, está vazio. Os arquivos criados, à exceção do arquivo Capit00 que está vazio, contêm:
Capit01
Capitulo 1 Era uma vez, era uma vez três porquinhos, Palhaço, Palito e Pedrito. ...
Capit02
Capitulo 2 E o Lobo Mau, ...
Capit03
Capitulo 3 E o caçador, matou o Lobo Mau, casou-se com a Chapeuzinho Vermelho, e viveram felizes para sempre. The End
O comando csplit
todavia, é um pouco complexo. Existe um programa
de domínio público chamado slice
, que é muito mais flexível e fácil de
usar que o comando csplit
.
Saiba mais sobre o comando slice
Artigo revisado e atualizado em 20 de julho de 2020
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários