Localizar palavra e alterar linha anterior

1. Localizar palavra e alterar linha anterior

Rodrigo Terroni
rt_suse

(usa Suse)

Enviado em 14/05/2012 - 09:07h

Pessoal, bom dia!
Sou iniciante em Linux e recebi uma missão... Alterar 1 arquivo de acordo com a seguinte condição:
1 - Localizar determinados caracteres em uma linha;
2 - Com o resultado, alterar determinados caracteres da linha anterior.
Por exemplo:
Tenho a seguinte linha:
0330004300001J000001985299000001 - onde os caracteres 1J são a chave da pesquisa
Com o resultado, tenho que alterar a linha anterior:
03300041C2030030 - de 030 para 043
Alguém pode, por favor, me ajudar?
Agradeço antecipadamente.




2. Re: Localizar palavra e alterar linha anterior

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 14/05/2012 - 12:44h

rt_suse escreveu:

Pessoal, bom dia!
Sou iniciante em Linux e recebi uma missão... Alterar 1 arquivo de acordo com a seguinte condição:
1 - Localizar determinados caracteres em uma linha;
2 - Com o resultado, alterar determinados caracteres da linha anterior.
Por exemplo:
Tenho a seguinte linha:
0330004300001J000001985299000001 - onde os caracteres 1J são a chave da pesquisa
Com o resultado, tenho que alterar a linha anterior:
03300041C2030030 - de 030 para 043
Alguém pode, por favor, me ajudar?
Agradeço antecipadamente.


É possível você colocar uma base de testes maior aqui ? Acho que o arquivo tendo 10 linhas e você mostrando os critérios fica mais fácil de entender.


3. Re: Localizar palavra e alterar linha anterior

Rodrigo Terroni
rt_suse

(usa Suse)

Enviado em 14/05/2012 - 16:27h

AprendiNoLinux escreveu:

rt_suse escreveu:

Pessoal, bom dia!
Sou iniciante em Linux e recebi uma missão... Alterar 1 arquivo de acordo com a seguinte condição:
1 - Localizar determinados caracteres em uma linha;
2 - Com o resultado, alterar determinados caracteres da linha anterior.
Por exemplo:
Tenho a seguinte linha:
0330004300001J000001985299000001 - onde os caracteres 1J são a chave da pesquisa
Com o resultado, tenho que alterar a linha anterior:
03300041C2030030 - de 030 para 043
Alguém pode, por favor, me ajudar?
Agradeço antecipadamente.


É possível você colocar uma base de testes maior aqui ? Acho que o arquivo tendo 10 linhas e você mostrando os critérios fica mais fácil de entender.


Aí está:
03300011C2003030
0330001300001A
0330001300002B
0330001300003A
0330001300004B
0330001300005A
0330001300006B
0330001300007A
0330001300008B
0330001300009A
0330001300010B
0330001300011A
0330001300012B
03300015
03300021C2030030
0330002300001J
0330002300002J
0330002300003J
0330002300004J
0330002300005J
0330002300006J
0330002300007J
0330002300008J

O que eu preciso é procurar a ocorrencia 01J, voltar para a linha anterior e trocar 03300021C2030030 para 03300021C2030043. Para quantas vezes aparecer.
Vlw.


4. Re: Localizar palavra e alterar linha anterior

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 14/05/2012 - 17:54h

Vc já começou a fazer algo?
Isso da pra fazer sim. Ao meu ver, da pra vc ler linha por linha e ir jogando as mesmas para outro arquivo já substituindo as linhas acima do 01J.
Se vc não começou a fazer, tente pelo menos dar o passo inicial, aí podemos trabalhar sua idéia! :-)


5. Re: Localizar palavra e alterar linha anterior

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 16/05/2012 - 07:04h

alexandregms escreveu:

Vc já começou a fazer algo?
Isso da pra fazer sim. Ao meu ver, da pra vc ler linha por linha e ir jogando as mesmas para outro arquivo já substituindo as linhas acima do 01J.
Se vc não começou a fazer, tente pelo menos dar o passo inicial, aí podemos trabalhar sua idéia! :-)


+1 ;)