SED alterar portabilidade [RESOLVIDO]

1. SED alterar portabilidade [RESOLVIDO]

Adilson Magnus
adilsom

(usa CentOS)

Enviado em 31/07/2012 - 10:13h

Bom dia estou com um problema que não consigo resolver

Eu trabalho com telecomunicação e tenho o banco de dados de todos os números portados do brasil.

O problema é que agora com o 9 na frente dos celulares de SP tenho que alterar toda a base de dados.

exemplo de como estão as linhas:

6917078;21652957;1188484474;55341;0341;498;07/07/2012 21:00:59;lspp;new;Basic;;07/07/2012 21:00:58;INSERT;
6917079;21652959;9988484494;55341;0341;498;07/07/2012 21:00:59;lspp;new;Basic;;07/07/2012 21:00:58;INSERT;
6917080;21652958;9988484475;55341;0341;498;07/07/2012 21:00:59;lspp;new;Basic;;07/07/2012 21:00:58;INSERT;
6917081;21652960;9988484496;55341;0341;498;07/07/2012 21:00:59;lspp;new;Basic;;07/07/2012 21:00:58;INSERT;
6917082;21652955;1188798090;55341;0341;498;07/07/2012 21:00:59;lspp;new;Basic;;07/07/2012 21:00:58;INSERT;
6917083;21652962;1198848449;55341;0341;498;07/07/2012 21:01:00;lspp;new;Basic;;07/07/2012 21:00:59;INSERT;
6917084;21652963;9988484501;55341;0341;498;07/07/2012 21:01:00;lspp;new;Basic;;07/07/2012 21:00:59;INSERT;
6917085;21652964;1178484502;55341;0341;498;07/07/2012 21:01:00;lspp;new;Basic;;07/07/2012 21:00:59;INSERT;
6917086;21652965;9988484503;55341;0341;498;07/07/2012 21:01:00;lspp;new;Basic;;07/07/2012 21:00:59;INSERT;
6917087;21652961;9988484497;55341;0341;498;07/07/2012 21:01:00;lspp;new;Basic;;07/07/2012 21:00:59;INSERT;

são quase 6 milhões de linhas

o numero é o 3º item.

Preciso pegar todas as linhas que no 3º item comece com 11[9-8-7-6-5] e tiver 10 dígitos e colocar o 9 na frente

A expressão regular já encontrei que faz a busca:
.;11[5-6-7-8-9][0-9]{7};55


Tentei usar o SED para esta substituição, mas não consegui, alguém pode me ajudar?

Por favor é urgente





  


2. Re: SED alterar portabilidade [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 31/07/2012 - 10:43h

Ai vai:

Faça um teste pra ver o resultado:

cat arquivo_alvo.txt | sed '/;11[5-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];/s/;11/;911/g'


Faça definitivo:


sed -i '/;11[5-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9];/s/;11/;911/g' arquivo_alvo.txt








3. Re: SED alterar portabilidade [RESOLVIDO]

Adilson Magnus
adilsom

(usa CentOS)

Enviado em 31/07/2012 - 11:34h

resolvido,

usei sed mesmo

retirei o 1º campo, e o final de cada linha depois da data, estes campos eram desnecessário.

depois só substitui ;119 por ;1199

sem retirar o 1º campo não daria certo pois o segundo campo também pode começar com ;119

obrigado








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts