segunda-feira, 9 de novembro de 2015
Split o comando shell split
Comandos SHELL BASH
O comando split divide um arquivo em arquivos menores com base em um número especificado de linhas ou partes . Cada um destes arquivos menores são iguais em tamanho desde que a divisãop dos mesmo sejaa um numero inteiro, assim com excessão do ultimo que ficará com a sobra de linhas todos os demais terão o mesmo tamanho.. O arquivo original não é alterado pela separação. e todos os arquivos serão criados no diretório corrente.
O comando split pode ser útil para dividir grandes arquivos de dados em arquivos menores, mais gerenciáveis..
No caminho oposto podemos cosntruir um arquivo a partir de fragmentos com o comando CAT..
Alguns comandos não tem capacidade para trabalhar com arquivos muito grandes; portanto, dividir o arquivo em partes menores para estes comandos e esssencial.
O comando split lê a entrada de um arquivo ou a entrada padrão e cria vários arquivos de saída. Formato geral:
divisão [opção] [INPUT [PREFIX]]
Cada arquivo pode conter qualquer quantidade fixa de partes (-b) ou linhas (-l). Em caso de bytes, poderá utilizar sufixo "k" e "m" em tamanho.
TAMANHO pode ter um sufixo multiplicador: b para 512, k para 1K, m para 1 Meg.
Se você fornecer o argumento prefixo, os arquivos de destino são nomeados prefixXX. Onde XX é aa para o primeiro arquivo, ab para o segundo, e continua até que o zz arquivo. Isso é um total de 676 arquivos você pode gerar se você dividir sua entrada em tamanhos pequenos o suficiente. Ao usar o prefixo, você deve usar um nome de dois caracteres menores do que o máximo permitido para nomes de arquivos. O comprimento máximo do nome do arquivo é 100; portanto, você deverá usar no maximo nomes de 98 caracteres para prefixo. Se um argumento prefixo não for especificado, os arquivos de destino são nomeados XXX. separação utiliza os X como um prefixo., geralmente xaa xab xac etc...
O formato geral do comando SPLIT segue.
split [opções] [arquivo [prefixo]
Opções
Os argumentos obrigatórios para as opções longas são obrigatórios para opções curtas.
-a, --suffix-N = comprimento
usar sufixos de comprimento N (padrão 2)
-b, --bytes = TAMANHO
colocar TAMANHO bytes por ficheiro de saída
-C, --line-Bytes = TAMANHO
colocar na maioria dos bytes tamanho do arquivo de saída linhas por
-d, --numeric-sufixos
usar sufixos numéricos em vez de alfabéticos
-l, --lines = NÚMERO
número de linhas colocadas por arquivo de saída
--verbose
imprimir um diagnóstico para o erro padrão imediatamente antes de cada arquivo de saída é aberta
--help
exibir esta ajuda e sai
--version
informações de versão e sai
TAMANHO pode ter um sufixo multiplicador: b para 512, k para 1K, m para 1 Meg.
Argumentos
A lista a seguir descreve os argumentos que podem ser passados para o comando de divisão.
- Causas dividir a ler a partir da entrada padrão.
file O nome do arquivo de divisão lê e se divide em n ou 1000 arquivos de linha.
Se nenhum arquivo for dado na linha de comando, divisão irá ler da entrada padrão.
O prefixo será a base para o nome de todos arquivos de saída. Uma extensão é adicionada como prefixo para cada arquivo criado. A extensão é constituído por dois caracteres alfabéticos. A primeira extensão do arquivo é "aa", depois "ab", e assim por diante até a entrada original está completamente dividido.
Se o prefixo não for especificado, a saída é gravada em um arquivo com uma parte de base de "x" e as extensões normais. Assim, os nomes de arquivo de saída padrão são xaa, xab, e assim por diante.
divisão coloca sua saída em arquivos com uma extensão de dois caracteres. Os personagens começam com "aa", o próximo arquivo é "ab", e assim por diante até que toda a entrada foi dividido e armazenado em vários arquivos.
Exemplos
Nesta atividade, você usa o comando de divisão para dividir a entrada padrão para arquivos de saída separados. Comece no prompt shell.
split -20 - /etc/passwd
bustamancio@amancio:~$ split -20 /etc/passwd
bustamancio@amancio:~$ ls
Área de Trabalho Documentos Imagens Público Templates xaa
Documento1.bak~ Downloads Música shellus Vídeos xab
bustamancio@amancio:~$
Veja no exemplo acima foram criados dois arquivos um com 20 linhas xaa e o segundo xab com as linhas restantes.
veja:
bustamancio@amancio:~$ cat xab
messagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false
dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false
ntp:x:105:110::/home/ntp:/bin/false
whoopsie:x:106:114::/nonexistent:/bin/false
lightdm:x:107:115:Light Display Manager:/var/lib/lightdm:/bin/false
bustamancio:x:1000:1000:Bustamancio,,,:/home/bustamancio:/bin/bash
postfix:x:108:120::/var/spool/postfix:/bin/false
bustamancio@amancio:~$
Para xab sobaram 8 linhas.
Trabalhando no mesmo arquivo, este próximo exemplo é mais complexo: vou dividir o arquivos epartes de oito linhas cada com o arquivo tem 28 linhas a saida gerara 4 arquivos de 8 linhas cada
split -l 8 /etc/passwd
bustamancio@amancio:~$ split -l 8 /etc/passwd
bustamancio@amancio:~$ ls
Área de Trabalho Documentos Imagens Público Templates xaa xac
Documento1.bak~ Downloads Música shellus Vídeos xab xad
bustamancio@amancio:~$
Gerou xaa xab xac xad, cada um com oito linhas
Agora vamos fazer uma divisão por tamanho, suponha o arquivo tem mais de 12 gigas, e você precisa salvar em um DVD sabendo que só poderá ser gravado 4.5 em cada dvd,
split -b 4500m arqiuivo iso_segment
Exemplo Vou dividir o aruivo Megacubo.exe 986,7 KiB (1.010.360 bytes)
bustamancio@amancio:~/Downloads$ split -b 450000 Megacubo.exe
bustamancio@amancio:~/Downloads$ ls
apostila-introducao-shell.pdf Linux Shell Scripting Tutorial v2.0.pdf xab
Incrementando_o_Shell_com_ER(1).pdf Megacubo.exe xac
Incrementando_o_Shell_com_ER.pdf sistema-operacional-1-ano-de-informatica-completa.pdf
LINUX.pdf xaa
bustamancio@amancio:~/Downloads$
No exemplo acima forama criados dois arquivos de 450 kb e um de 86,7 kb.
Em algumas situações se torna desejável a divisão de um arquivo em vários outros menores, aplicando-se alguma restrição.
O comando split possibilita a divisão de um arquivo baseando-se no número de linhas ou número de bytes que cada arquivo novo deverá conter.
Por exemplo:
split -l 10 /etc/passwd
Este comando criará vários arquivos denominados xaa, xab, xac, etc. Nem sempre estes nomes são os mais convenientes. Neste caso podemos, com o acréscimo de mais um parâmetro, determinar o sufixo do nome dos arquivos que serão criados:
split -l 10 /etc/passwd pas-
ls
pas-aa pas-ab pas-ac pas-ad
pas-ae
pas-af
pas-ag
pas-ah
Os arquivos criados passaram a conter o prefixo pas-, permitindo identificar mais claramente os contadores dos arquivos (aa, ab, ac, etc.)
Além do particionamento em linhas, o comando split, quando invocado com a opção b, irá efetuar a divisão do arquivo baseando-se no número de bytes:
split -b 32k /etc/passwd pas-
ou então
split -b 32 /etc/passwd pas-
ou ainda
split -b 32m /etc/passwd pas-
No primeiro exemplo, o arquivo /etc/passwd será dividido em vários arquivos de 32kbytes cada um,
ao passo que no segundo exemplo, o arquivo será dividido em arquivos de 32 bytes cada. No terceiro
exemplo, o arquivo /etc/passwd é dividido em arquivos de 2MB cada (pouco provável :-)
Um outro exemplo, para dividir um arquivo em vários para gravação em disquetes de 1.44, o comando split é uma das opções possíveis:
# split -b 1400000
O comando split irá criar vários arquivos chamados xaa, xab, xac, etc.
Para restaurá-los basta usar o comando cat, como abaixo:
# cat x* > original_filenamete.
Assinar:
Postar comentários (Atom)
Megacubo par Linux e Wnidows - Assistir TV no Computador
MEGACUBO PARA LINUX Ola!! Neste post vamos falar um pouquinho sobre o Megacubo, um tradicional programa ...
-
ATUALIZAD0 E. 12/05/2017 Uma dica, para quem esta com problemas com a configuração de teclado, que não está acentuando direito. Como t...
-
Hoje vamos falar sobre o Zenity: Zenity e um programa cross-plataform que permite a execução de box GTK+ de dialogos em linha de co...
-
MEGACUBO PARA LINUX Ola!! Neste post vamos falar um pouquinho sobre o Megacubo, um tradicional programa ...
Nenhum comentário:
Postar um comentário