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: 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.
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