Shell Script - Dividir Arquivo pelo meio

Feras,
como eu quebro um arquivo pela metade, indiferentemente do tamanho dele

tentei o camando conforme abaixo mas acho que falta alguma coisa ai

http://kb.iu.edu/data/afar.html

Fera,

nesse exemplo ele quebra o arquivo eu adiconando o tamanho que eu desejo que ele seja dividido certo ?

mas meus arquivo tem tamanhos variados uma hora pode ser um arquivo de 100Mb outra hora pode ser um arquivo de 400Mb,

pois isso indiferentemente do tamanho quero quebra-lo em 2 partes iguais…

ondecortar=` wc -l arquivo.txt | awk ' {print ($1/2 == int($1/2) ? int($1/2) : int($1/2) + 1 )} ' `
split -l $ondecortar arquivo.txt arquivo_splitted_

gomesrod,

eu tentei como vc me passou mas não funcionou, uma observação estou executando esse comando dentro de um bat e no Windows,

na onde vc passou o nome do arquivo eu passei o diretorio + nome do arquivo

exemplo “c:\Arquivo\dividir\nome_arquivo.txt”

será que é por essas observações que não esta funcionando ?

Peraí pára tudo!!! rsrs
Então você está no Windows e não no Unix?

Isso mesmo…

estou querendo dividir esse arquivo através da execução de um .bat, usando o SO Windows

Tudo que apareceu até agora no tópico é sobre Shell Script (Unix) por causa do nome do tópico e do seu primeiro exemplo.

Volta tudo então…

O shell do DOS é limitado então a solução é bem mais complexa. Você tem basicamente três opções:

  • A primeira é instalar o Cygwin. É um simulador do shell do Linux que roda no windows. Com ele você vai conseguir usar a solução que coloquei aqui (inclusive eu não estou no linux e testei no cygwin)

  • A segunda, fazer o equivalente ao que eu fiz usando os comandos do DOS. Os passos são:
    ---- (1) Contar o número de linhas do arquivo: Procure no google por DOS COUNT LINES, vai aparecer algumas gambiarras (quer dizer, soluções :slight_smile: ) para fazer isso no DOS
    ---- (2) Dividir por 2: É só usar o comando SET /A variavel=%outravariavel% / 2 + 1
    ---- (3) Partir o arquivo: Diferente do linux que tem um comando nativo (split) para quebrar o arquivo, no DOS vc vai ter que baixar um programa externo para isso. Procure no google por DOS SPLIT FILE

  • A terceira, aprender a usar o Windows Powsershell (beeeem mais poderoso que o cmd normal) e fazer com ele. Vou ficar devendo detalhes porque não tenho experiência com essa ferramenta .

Blz valeu pela tentativa de ajuda