Substituir Caracteres condicional [RESOLVIDO]

1. Substituir Caracteres condicional [RESOLVIDO]

Amaury Euzebio
urameshe

(usa Ubuntu)

Enviado em 27/10/2015 - 22:34h

Boa noite.
Estou com um arquivo para substituir o valor 2102 por 2403 e 5103 por 5403 quando a a alíquota for 0000 esse é um layout fixo por numero de posição então seria algo do tipo se a posição 122 a 125 for igual a 0000 trocar da posição 52 a 55 por 2403 caso seja 2103 e por 5403 caso seja 5102. Desde já agradeço.


1005455616000189066696887 BREXUX LIVRARIA LTDA ITAPITPOCA CE85411816002010010120101231331
11AV. PEDRO , n� 969 00969 JOAQUIM FERNANDES 60135100CARLOS 008540080606
5061578118000358635617960110 20100123SP0113 0061472102T000000012197300000000000000000000000000000000000000000000001219730000N
5001230897000536241060427 20100111AL011 0051352102T000000006942000000000694200000000008330000000000000000000000000001200N
5001230897000536241060427 20100111AL011 0059752102T000000008436000000000843600000000010123000000000000000000000000001200N
5001230897000536241060427 20100120AL011 0056462102T000000003105000000000310500000000003726000000000000000000000000001200N
5001230897000536241060427 20100120AL011 0058282102T000000001200000000000120000000000001440000000000000000000000000001200N
5003658121000113115935697111 20100120SP011 0212682102T000000015437600000001528300000000010700000000000154600000000000000700N
5007127994000150194554996 20100106PI011 0019442102T000000019474200000001947420000000023369000000000000000000000000001200N


  


2. Re: Substituir Caracteres condicional

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 28/10/2015 - 20:40h

Olá,

VC explicou de uma forma e exemplificou de outra...rsrs

Entendi que :
Nas linhas que contém 0000 nos caracteres 122 ao 125, Devemos trocar os caracteres de 52 ao 55 por:
2403 se o original dor 2103
5403 se o original for 5103
Na verdade precisa trocar somente um numero (centena), mas ok vamos trocar os 4 digitos:

Para alterar o arquivo original:

sed -ri 's/(^.{51})(2103)(.{66}0000.*$)/\12403\3/g;s/(^.{51})(5103)(.{66}0000.*$)/\15403\3/g' arquivo.txt 


abs,

Caso deseje salvar o resultado num novo arquivo e NÂO alterar o original:
sed -r 's/(^.{51})(2103)(.{66}0000.*$)/\12403\3/g;s/(^.{51})(5103)(.{66}0000.*$)/\15403\3/g' arquivo.txt > resultado.txt  



Espero que ajude.

abs


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


3. Re: Substituir Caracteres condicional [RESOLVIDO]

Amaury Euzebio
urameshe

(usa Ubuntu)

Enviado em 29/10/2015 - 01:10h

Boa noite.
Perfeito....

Isso mesmo só fiz os ajustes que precisava que no caso de 2102 para 2403 e 5102 para 5403.

Muito obrigado...

tonyhts escreveu:

Olá,

VC explicou de uma forma e exemplificou de outra...rsrs

Entendi que :
Nas linhas que contém 0000 nos caracteres 122 ao 125, Devemos trocar os caracteres de 52 ao 55 por:
2403 se o original dor 2103
5403 se o original for 5103
Na verdade precisa trocar somente um numero (centena), mas ok vamos trocar os 4 digitos:

Para alterar o arquivo original:

sed -ri 's/(^.{51})(2103)(.{66}0000.*$)/\12403\3/g;s/(^.{51})(5103)(.{66}0000.*$)/\15403\3/g' arquivo.txt 


abs,

Caso deseje salvar o resultado num novo arquivo e NÂO alterar o original:
sed -r 's/(^.{51})(2103)(.{66}0000.*$)/\12403\3/g;s/(^.{51})(5103)(.{66}0000.*$)/\15403\3/g' arquivo.txt > resultado.txt  



Espero que ajude.

abs


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---







4. Re: Substituir Caracteres condicional [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 29/10/2015 - 07:06h

opa!

Que bom...

Nao esqueca de marcar como concluído... (isso ajuda na busca de outros foristas)

abs

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts