claudio4p
(usa Outra)
Enviado em 28/04/2017 - 10:11h
msoliver escreveu:
claudio4p escreveu:
Olá,
tenho arquivo sequencial com 120.000 linhas que preciso colocar números de 1 a 4 em determinadas posições sendo que
eles nunca possam estar na mesma linha e se repitam na mesma linha.
Alguém pode dar uma luz ou já fez algo parecido ?
exemplo:
000001;"1";"";"";"" -> o numero 1 tem que aparecer 12 vezes nessa posição nesse arquivo de 12.000 linhas
000002;"";"2";"";"" -> o numero 2 tem que aparecer 300 vezes nessa posição nesse arquivo de 12.000 linhas
000003;"";"";"3";"" -> o numero 3 tem que aparecer 1.200 vezes nessa posição nesse arquivo de 12.000 linhas
000004;"";"";"";"4" -> o numero 4 tem que aparecer 1 vez nessa posição nesse arquivo de 12.000 linhas
Os números não podem aparecerem juntos na mesma linha no arquivo de 12.000 linhas, ex:
000005;"4";"";"";"1"
000006;"";"2";"3";"1"
Bom dia Claudio.
Considerando:
nº 1 0012 x cp1
nº 2 0300 x cp2
nº 3 1200 x cp3
nº 4 0001 x cp4
Temos um total de 1513 linhas, e as demais, como ficam?
Somente com o sequencial?
Caso positivo, segue a solução:
#!/bin/bash
for ((NL=1;NL<=120000;NL++));do
((NL<=12)) && printf "%06d;1;;;\n" $NL >> sequencial.txt
((NL>12&&NL<=312)) && printf "%06d;;2;;\n" $NL >> sequencial.txt
((NL>312 && NL<=1512)) && printf "%06d;;;3;\n" $NL >> sequencial.txt
((NL==1513)) && printf "%06d;;;;4\n" $NL >> sequencial.txt
((NL>1513)) && printf "%06d;;;;\n" $NL >> sequencial.txt
done
É gerado um arquivo de 1.3MB
att.:
marcelo oliver
Bom dia Marcelo...
Testei seu script e o resultado é quase esse... porém preciso que os números 1,2,3 e 4 apareçam no aquivo de saída de forma randômica dentro das 120 mil linhas do arquivo.
o numero sequencial continua porém os número 1,2,3 e 4 vão variar dentro das suas posições e com suas respectivas
quantidades, ex:
000001;"";"2";"";""
000015;"";"2";"";""
008000;"";"2";"";""
020001;"1";"";"";""
060001;"";"";"3";""
090003;"";"";"";"4"
100008;"";"";"3";""
atc