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

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

Re: [shell-script] Substituir determinada posição


From: Jonathan Lessa
Subject: Re: [shell-script] Substituir determinada posição
Date: Wed, 10 Aug 2016 13:10:24 -0300

Uma das opções com o sed:

# cat texto
12233455SajjdhkfklmdkljedjjsSsjskdjjSantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSsjskdjjrantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSsjskdjjyantosSwilliamsS
aaz33455SajjdhkfklmdkljedjjsSsjskdjjanytosSwillis12S

# sed -r "s/(.{8}).(.{19}).(.{13}).(.{8}).$/\1 \2 \3 \4/g" texto
12233455 ajjdhkfklmdkljedjjs sjskdjjSantos williams
12233455 ajjdhkfklmdkljedjjs sjskdjjrantos williams
12233455 ajjdhkfklmdkljedjjs sjskdjjyantos williams
aaz33455 ajjdhkfklmdkljedjjs sjskdjjanytos willis12

Nesse caso estou coletando os campos de tamanho fixo e usando os retrovisores separando por espaços.



Em 6 de agosto de 2016 23:25, address@hidden [shell-script] <address@hidden> escreveu:
 

Prezados,

Peço a gentileza em encontrar uma solução, para a questão.

Arquivo de entrada modelo:

12233455SajjdhkfklmdkljedjjsSsjskdjjSantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSsjskdjjrantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSsjskdjjyantosSwilliamsS
aaz33455SajjdhkfklmdkljedjjsSsjskdjjanytosSwillis12S


Por incrível que pareça colocaram o caractere 'S' maiusculo como separador, por este motivo um simples tr ou um sed não funcionária corretamente.


A primeira linha do exemplo consta um a string que possui o valor: "sjskdjjSantos", na terceira coluna.

 

A parte boa que tudo possui tamanho fixo, eu já consegui identificar as posições onde devo substituir, mas não consegui montar um sed que realize as substituições.


Poderia ser utilizado um laço para ler linha a linha cortando (substrings) e remontando as partes, mas o arquivo é muito grande e o tempo de processamento não será satisfátório.


Como realizar a substituição?


Somente dos campos: "9 29 43 52"


Obrigado




--
Att.:
Jonathan Lessa
Licenciado em Informática

reply via email to

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