Ajuda com Substring em sh [RESOLVIDO]

1. Ajuda com Substring em sh [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 03/08/2016 - 16:50h

Olá pessoal,
resumindo, estou tentando fazer um script que faz o seguinte
Tenho um arquivo texto +- assim:
/teste.txt

#palavra a dividir | ultimo passo
palavra|0


script.sh:

#!/bin/sh
PALAVRA="`cut -f 1 -d'|' /teste.txt`"
PASSO="`cut -f 2 -d'|' /teste.txt`"
CONTA="`echo $PALAVRA | wc -c`"
RESULT=$(($CONTA - 1));

echo PALAVRA $PALAVRA
echo CARACTERES $RESULT
echo PROVEDOR $PROVEDOR
echo PASSO $PASSO


A ideia é quando eu chamar o script uma vez ele vai retornar ".palavra", na segunda vez ele vai retornar "p.alavra", na terceira "pa.lavra", na quarta "pal.avra" e assim por diante até o ponto ficar depois do último caractere.

O "0" no caso vou utilizar como referência para saber quantos "passos" o ponto já deu, me empaquei foi em como retornar cada caractere da "palavra" para poder imprimir de uma, minha distribuição usa o Bourne Shell (SH), não tem o Bash então é meio pobre de ferramentas..
será que consigo com AWK, SED, CUT ou algum comando destes?

bom nem sei bem como vou fazer depois de conseguir imprimir cada caractere acho que vou tentar fazer um loop, se alguém tiver uma ideia também de como fazer esta parte vai ajudar bastante

obrigado!



  


2. MELHOR RESPOSTA

thinomar
thinomar

(usa Linux Mint)

Enviado em 03/08/2016 - 17:12h

Comando:
variavel="palavra" ; for((i=0;i <= ${#variavel}; ++i)) ; do echo $variavel | sed "s/.\{$i\}/&\./" ; done 

Saída:
.palavra
p.alavra
pa.lavra
pal.avra
pala.vra
palav.ra
palavr.a
palavra.

--
-I've been talking to the main computer
-And...?
-It hates me

3. Re: Ajuda com Substring em sh [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 03/08/2016 - 17:48h

thinomar escreveu:

Comando:
variavel="palavra" ; for((i=0;i <= ${#variavel}; ++i)) ; do echo $variavel | sed "s/.\{$i\}/&\./" ; done 

Saída:
.palavra
p.alavra
pa.lavra
pal.avra
pala.vra
palav.ra
palavr.a
palavra.

--
-I've been talking to the main computer
-And...?
-It hates me

Amigo, PERFEITO!
Exatamente o que eu preciso, nem precisou do laço só o Sed já salvou:

#!/bin/sh
PALAVRA="`cut -f 1 -d'|' /teste`"
PASSO="`cut -f 2 -d'|' /teste`"
CONTA="`echo $PALAVRA | wc -c`"
RESULT=$(($CONTA - 1));

echo $PALAVRA| sed "s/.\{$PASSO\}/&\./"

SOMA=$(($PASSO+1))
if [ "$SOMA" -le "$RESULT" ]; then
echo "$PALAVRA|$SOMA" > /teste
fi


Obrigado!!



4. Re: Ajuda com Substring em sh [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 04/08/2016 - 09:56h

Que bom que funcionou.

Como o problema foi solucionado, marque a questão como resolvida, para que outras pessoas que enfrentarem o mesmo tipo de problema encontrem a solução mais facilmente.
--
-I've been talking to the main computer
-And...?
-It hates me






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts