|
From: | Adilson dos Reis |
Subject: | Re: [shell-script] Substituir determinada posição |
Date: | Wed, 10 Aug 2016 17:49:29 +0000 (UTC) |
Olaeu vejo algumas opçõesawk com variavel FIELDWIDTHS onde vc especifica o tamanho de cada campo ( e ai cria campos pares de 1 caracter q sera o seu S para ignorar ). o man do awk fala melhor sobre esta variavelpode especificar a variavel OFS pra escolher o separador$ awk -v OFS="|" -v FIELDWIDTHS="8 1 19 1 13 1 8" '{ print $1,$3,$5, $7 }' example
12233455|ajjdhkfklmdkljedjjs| sjskdjjSantos|williams
12233455|ajjdhkfklmdkljedjjs| sjskdjjrantos|williams
12233455|ajjdhkfklmdkljedjjs| sjskdjjyantos|williams
aaz33455|ajjdhkfklmdkljedjjs| sjskdjjanytos|willis12vc pode usar o cut para pegar apenas o campos que vc quer, sem o S e ai usar o awk ou sed para pegar as posições, algo como$ cut -c 1-8,10-20,22-28 arquivo | ...mas ele sozinho nao ajuda muito.2016-08-07 4:25 GMT+02:00 address@hidden [shell-script] <address@hidden. br>:Prezados,
Peço a gentileza em encontrar uma solução, para a questão.
Arquivo de entrada modelo:
12233455SajjdhkfklmdkljedjjsSs jskdjjSantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSs jskdjjrantosSwilliamsS
12233455SajjdhkfklmdkljedjjsSs jskdjjyantosSwilliamsS
aaz33455SajjdhkfklmdkljedjjsSs jskdjjanytosSwillis12SPor 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--
[Prev in Thread] | Current Thread | [Next in Thread] |