lordhulk
(usa Ubuntu)
Enviado em 06/09/2009 - 16:49h
Olá,
Eu não sou muito de deixar as coisas de mão beijada, sendo assim, vou te dar toda a base pra vc fazer, pra vc possa entender.
digamos q temos o seguinte
116360,116361,116362,116363,116364,116365,116366,116367,116368,116369
116350,116351,116352,116353,116374,116375,116376,116377,116378
116390,116391,116392,116393,116394,116395,116396,116397,116398,116399
116380,116381,116382,116383,116384,116385,116386,116387,116388,116389
116370,116371,116372,116373,116374,116375,116376,116377,116378,116379
antes de mais nada precisamos tirar quem não bate com o padrão sequencial
egrep .*0,.*1,.*2,.*3,.*4,.*5,.*6.*7,.*8,.*9$
Essa expressão regular com egrep acima procura um padrão de qualquer coisa "." em qualquer quantidade "*" seguido de um 0 e uma "," , seguido de qualquer coisa "." em qualquer quantidade "*" seguido de um 1 e uma "," e assim por diante.
Dessa sequencia vc apenas quer o primeiro grupo de numeros antes da virgula e sem o ultimo numero?
Essa sequencia acima se transformaria em:
11636,11637,11638,11639
Se for isso, primeiro vc usa
cut -d , -f 1
com isso a sequencia acima vira
116360
116370
116380
116390
Depois vc pega o sed e arranca o ultimo numero. Note que cada em shell usamos "$" para definir o fim de cada linha. Dessa forma, .$ representa o ultimo caracter qualquer, seguido do fim da linha. Como todos são "0", poderia ser 0$ tamb
sed -e "s/.$//g"
11636
11639
11638
11637
Depois disso, vc precisa sequeciar, basta usar o comando "sort"
Por fim, basta vc trocar o caracter não imprimível de nova linha por uma virgula
tr \\n ,
Bom, agora é só vc juntar tudo que chega lá.