Hi All,
Is it possible in Unix shell script to extract numbers from a string containing ".", such as;
5.2.314
And store in variables so;
var1 = 5
var2 = 2
var3 = 314
Thanks in advance for any help anyone can provide
dave
Hi All,
Is it possible in Unix shell script to extract numbers from a string containing ".", such as;
5.2.314
And store in variables so;
var1 = 5
var2 = 2
var3 = 314
Thanks in advance for any help anyone can provide
dave
With zsh:
zsh-4.3.4% s="5.2.314"
zsh-4.3.4% a=(${(s:.:)s})
zsh-4.3.4% print $a[1]
5
zsh-4.3.4% print $a[3]
314
With ksh93/bash:
bash 3.2.25(1)$ s="5.2.314"
bash 3.2.25(1)$ set -- ${s//./ }
bash 3.2.25(1)$ echo $1
5
bash 3.2.25(1)$ echo $3
314
More rustic, more complicated, but running anywere I think :rolleyes: :
#!/bin/ksh
a="5.2.314"
i=1
while [ "$a" != "" ]
do
x[$i]=$(echo $a | cut -d. -f1)
typeset x$i=${x[$i]}
((i=i+1))
a=$(echo $a | cut -s -d. -f2-)
done
echo "x1=$x1, x2=$x2, x3=$x3"
#!/bin/ksh
str="5.2.314"
Var1=`echo $str | awk -F\. '{print $1}'`
Var2=`echo $str | awk -F\. '{print $2}'`
Var3=`echo $str | awk -F\. '{print $3}'`
echo "$Var1 $Var2 $Var3"
enjoy
Hi,
CODE:
echo 5.2.3.314 | awk 'BEGIN{FS="."}
{
for (i=1;i<=NF;i++)
print "var"i"="$i
}'
OUTPUT:
var1=5
var2=2
var3=3
var4=314
In a script (ksh):
i=1
echo 5.2.314 | sed 's/\./ /g' | while read n
do
echo "var$i = $n"
let i=i+1
done
Thank you very much everybody for your help!