Veja este exemplo, roberto: $ cat arquivo
2GB33 BA,2024500700,01/01/1922,30/06/1922,0,3 $ sed 's/^[^,]*,[^,]\{5\}/&,/' arquivo 2GB33 BA,20245,00700,01/01/1922,30/06/1922,0,3 Bom, como eu fiz ? perceba a expressão regular: ^ : começo de linha [^,]* : todos os caracteres MENOS a virgula , : virgula litera [^,]\{5\} : um conjunto de 5 caracteres não composto de virgula. assim, eu encontro uma parte da expressão. preciso colocar um virgula depois, o que e faço? - mando substituir o que eu encontrei por ela mesma acrescentado de , & -> & significa a parte que foi encontrada pelo s/.../ Existem outras formas de fazer a mesma coisa, como em AWK awk -F \, '{OFS="," ; sub(/...../,"&,",$2); print $0}' arquivo > arquivo_novo []´s Tiago On 1/25/07, Roberto Alves <[EMAIL PROTECTED]> wrote: > > Pessoal, > acho que isso deve ser simples pra voces. > Eu tentei mas nao consegui separar os cinco primeiros digitos da > segunda coluna e transforma-los em uma coluna. > Vou tentar explicar melhor: > > No ex do arquivo abaixo: > > 2GB33 BA,2024500700,01/01/1922,30/06/1922,0,3 > 2B048 BA,2774500700,01/01/1925,30/12/1925,0,3 > 20265 BA,2370000500,17/07/1937,01/09/1937,0,4 > > Eu quero dividir a segunda coluna em duas pegando os cinco primeiros > digitos dela fazendo ser a segunda coluna e o restante sendo a > terceira coluna. > O restante da linha fica igual. > > A primeira linha mudaria disso: > 2GB33 BA,2024500700,01/01/1922,30/06/1922,0,3 > > Para isso: > 2GB33 BA,20245,00700,01/01/1922,30/06/1922,0,3 > > Viram? O 20245 passa a ser separado por uma virgula virando a segunda > coluna. > > Já tentei tanta coisa que nem vou colocar minhas ideias malucas aqui. > Agradeço sugestões antecipadamente. > abraços a todos, > Roberto > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer [As partes desta mensagem que não continham texto foram removidas]