shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] formatacao de um arquivo


From: Ricardo Acosta
Subject: Re: [shell-script] formatacao de um arquivo
Date: Tue, 6 Jun 2006 10:57:03 -0300

Buenas,
se as linhas que vc pretende mudar, sempre iniciarem com 14...pode
utilizar a seguinte solução com SED:

acosta@clima: ~$ sed 's@\(^14.\)0@\13@'  teste.txt
02192199032200402031  (inicio do arquivo)
14535244536800068946220040229000010000000021040000000150008512C
(telefone1)
14535776443800066463020040229000020000000027460000000150008512C
(telefone2)
14535234043800620557220040229000030000000000520000000150008512C
(telefone3)
14535241465800068627720040229000040000000026970000000150008512C
(telefone4)
9000379000000000976700  (final do arquivo)

sobre o comando:
sed 's@\(^14.\)0@\13@'

1 - utilizei o "@" como delimitador do comando de substituição,
geralmente utilizado no formato com "barras" s///

2 - entre os parenteses esta a expressão para pegar tudo que:
comece com o algarismo 1, seguido do 4, seguido de qualquer coisa("."),

3 - seguido do algarismo zero "0"..veja que o zero fora dos parenteses.

3 - substitui pelos valores encontrados dentro dos parenteses(indicado
pelo \1) seguido do algarismo 3..q era o q vc pretendia substituir!

[]s
acosta



Em 06/06/06, Rafael Sanches<address@hidden> escreveu:
Pessoal eis a minha primeira duvida,

Todo mes eu recebo um arquivo da uma operadora regional que vem da seguinte 
maneira

02192199032200402031  (inicio do arquivo)
14505244536800068946220040229000010000000021040000000150008512C   (telefone1)
14505776443800066463020040229000020000000027460000000150008512C   (telefone2)
14505234043800620557220040229000030000000000520000000150008512C   (telefone3)
14505241465800068627720040229000040000000026970000000150008512C   (telefone4)
9000379000000000976700  (final do arquivo)

na verdade oq eu preciso é de substituir 4ª posicao de caracter que sempre é 0 
pelo numero 3 , lembro aos colegas que ele tem que manter os cabeçados ou seja 
o inicio e final .

No caso ficaria assim.....

14535244536800068946220040229000010000000021040000000150008512C   (telefone1)
14535776443800066463020040229000020000000027460000000150008512C   (telefone2)

Conto com a colaboração de todos os colegas.


Compubras Telecom
Suporte Técnico
Rafael Sanches
+55 (45) 35725000
Linux User #314543

[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos











--
__________________________
Ricardo Acosta
Laboratório de Clima e Biosfera
Departamento de Ciências Atmosféricas - USP/IAG/ACA


reply via email to

[Prev in Thread] Current Thread [Next in Thread]