Re: Replace 'cut -c' calls by ksh internals

From: Jean-Christophe Basaille (Jean-Christophe.Basaille@U-BOURGOGNE.FR)
Date: Wed Jul 24 2002 - 04:53:53 EDT


Suite au message de Jean-Marc Monnez (monnez.jean-marc@AGORA.MSA.FR):

Hi,

try :

carstart=10
carlength=6
varlength=${#var}
((tokeepr=varlength-carstart+1))
typeset -R$tokeepr foo=$var
typeset -L$carlength bar=$foo
var1=$(print $bar) # Strip spaces in case var is less than 15 cars

Should work in ksh 88.

HTH

> Hello all,
>
 ...
>
> I have a problem with replacing the 'cut -c' calls with shell internals,
> and there are lots of them, like :
> var1=$(echo $var | cut -c10-15)
>
> My today's substitution for this seems quite heavy :
> var1=$var
> carstart=10
> carlength=6
> i=1
> while (( $i < $carstart ))
> do
> echo $i
> var1=${var1#?}
> i=$(($i + 1))
> done
> while (( ${#var1} > $carlength ))
> do
> var1=${var1%?}
> done
>
> Anyone have a cleverer mean of doing the same with ksh internals ?
>
> -- JMM
>
> PS : i need use of standard ksh 88 on AIX, ksh 93 is not available for
> me.

--
Jean-Christophe Basaille
Université de Bourgogne, Centre de Calcul, Dijon, France
Tel: +33 3 80 39 52 05 / Fax: +33 3 80 39 52 69


This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 22:16:05 EDT