grep attribute value pair and store it a variable

Hi,

I have a file contains attribute value pair like..

..name=erick rollno=583.0 pass=recon..

From the above line, i need to grep for only "rollno" and store "rollno=583.0" in a variable.

Pls suggest

What shell/language?

in ksh

Something like this :

var=`echo "name=erick rollno=583.0 pass=recon" | sed 's/.* \(rollno=[0-9.]*\) .*/\1/'`

echo $var

Using awk :

echo "name=erick rollno=583.0 pass=recon" | awk -F"[ ]" -v va="rollno" '$0 ~ va {for(i=1;i<=NF;i++) { if($i ~ va) print $i }}'

Thanks Panyam, it works fine.. need one more help..
Suppose if the file looks below

..name=erick rollno=ADsn:583 pass=recon..

then how to grep for rollno and store "ADsn:583" in a variable

A bit modification to the above sed :

echo "name=erick rollno=ADsn:583 pass=recon" | sed 's/.* rollno=\(.*\) .*/\1/'

Thanks a lot Panyam.. it works for me.. :slight_smile: