msoliver
(usa Debian)
Enviado em 31/03/2016 - 17:20h
DeidyC escreveu:
Oi, Marcelo, desculpa incomodar novamente, a programação que você fez roda certinho com arquivo pequenos, experimentei um com 20 linhas, mas quando utilizo arquivos grandes, meu arquivo 1 000 000 de linhas (1,5 GB) , ele não funciona, deixei rodar por dois dias e nada de acabar, além disso ele gera arquivos totalmente incompletos, será que ele tem algum problema de otimização você tem alguma sugestão.
Muito Obrigado!
----------------------------------------------------------------------------------------------------------------------------------
Boa tarde Deidy.
Quais as configurações seu PC?
Eliminei o
WHILE, testei com uma arquivo de 500 linhas,
gerou 250 ARQUIVOS:
time ./ORDENA-04.sh arq3
real 0m1.370s
user 0m0.060s
sys 0m0.120s
NOVO SCRIPT:
#!/bin/bash
# USO: ./ORDENA-04.sh arquivo_dados
[ $1 ] || { sed -n 2p $0 ; exit ; }
> ARQ_TEMP.txt
ARQTMP="ARQ_TEMP.txt"
NL=$(awk 'END {print NR}' $1)
for ((i=1;i<=$NL;i++));do
if egrep " $i$" "$1" > $ARQTMP ;then
ARQ=$(printf "ARQUIVO-%07d\n" $i)
cat ARQ_TEMP.txt >> $ARQ
fi
done
OBS:
Tendo em vista que seu arquivo é bastante grande, recomendo RODAR o SCRIPT, somente com o MODO TEXTO CARREGADO.
abç.:
Marcelo