você está aqui: Home  → Arquivo de Mensagens

slice - divisão de arquivos

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 07 de fevereiro de 2018

O comando slice comando incorpora toda a funcionalidade dos comandos split e csplit. Ao contrário dos comandos split e csplit, o comando slice não é padrão em sistemas Unix. Foi escrito em 1987 e fazia parte de uma distribuição de utilitários chamada unix-c, que infelizmente não consigo mais encontrar. De qualquer forma, eu guardei o código fonte, que pode ser baixado do repositório da Dicas-L.

Este comando demonstra muito claramente o poder de scripts shell. Por exemplo, o desenvolvedor do programa slice tinha uma necessidade que ia além das funcionalidades dos programas split e csplit, e criou um aplicativo que lhe atendesse. Isto feito, o programa pode ser inserido em shell scripts que podem então contar com todos os recursos criados.

O pacote slice contém o código fonte, você precisa instalar os compiladores e demais softwares para poder compilá-lo.

Vejamos então alguns exemplos de uso:

1) Divisão de um mailbox em vários arquivos contendo uma mensagem cada:

$ slice -f mailbox -m
$ ls
mailbox:2017-05-02.14:28     mailbox:2017-12-10.10:04:47
mailbox:2017-05-24.13:35:43  mailbox:2017-02-06.09:00:15
mailbox:2017-05-24.13:40:04  mailbox:2017-02-26.09:42:23

São criados vários arquivos iniciados por "mailbox:" e os números que se seguem identificam a data da mensagem.

2) Divisão de um arquivo sempre que for encontrada uma determinada string

Para dividir um arquivo sempre que for encontrada a string "###", eliminando nos arquivos resultantes a linha que contiver esta string (diretiva -x), fazemos:

$ slice -f arq1 -e "###" -x 

Além disto, o nome dos arquivos gerados pode ser configurado através de algumas diretivas aceitas pelo comando slice. Caso o arquivo original contenha as linhas:

$ cat arquivo1.txt
------ ARQ1
abcdefghijklmno
—---- ARQ2
abcdefghijklmno
—---- ARQ3
abcdefghijklmno
—---- ARQ4
abcdefghijklmno
—---- ARQ5
abcdefghijklmno
—---- ARQ6

O comando abaixo criará arquivos novos sempre que encontrar a string ---<CUT>---:

$ slice -f arquivo1.txt -e "------" -x x.#2
$ ls
arquivo1.txt  x.ARQ1  x.ARQ2  x.ARQ3  x.ARQ4  x.ARQ5  x.ARQ6

Os arquivos gerados receberam o prefixo "x." e o sufixo é o segundo (#2) campo da linha que preencheu os requisitos para divisão dos arquivos, indicado pelo parâmetro (-e "---<CUT>---"), em nosso caso a string ARQx, onde x varia de 1 a 6.

Repetindo, o programa está disponível para download no repositório da Dicas-L. Vale muito a pena conhecer e usar este aplicativo.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida