i have a file in this format
curyymm PRVYYMM CDDMmmYY bddMmmyy eddMmmyy
--------- ------- ------------ ---------- -----------
0906 0905 09Jun09 01Jun09 30Jun09
----------- --------- ------------ ------------ -----------
i need to read the third line and write a new file like this
curyymm = 0906
PRVYYMM = 0905
CDDMmmYY = 09Jun09
bddMmmyy = 01Jun09
eddMmmyy = 30Jun09
sed -n 3p file1 | read curyymm PRVYYMM CDDMmmYY bddMmmyy eddMmmyy
echo "curyymm = $curyymm
PRVYYMM = $PRVYYMM
CDDMmmYY = $CDDMmmYY
bddMmmyy = $bddMmmyy
eddMmmyy = $eddMmmyy" > file2
Or with awk:
awk '
NR==1{split($0,a);next}
NR==3{for(i=1;i<=NF;i++){print a " = " $i};exit}
' file > newfile
Regards
wow.. that was very quick.. thank you guys.. it was very helpfull.. i din think this would be this simple.. you guys made my life easy
nawk 'NR==1{
n=split($0,keys," ")
next
}
NR==3 {
split($0,vals," ")
for(i=1;i<=n;i++)
printf("%s=%s\n",keys,vals)
exit
}' a.txt
That will fail in every shell except ksh. It will fail in pdksh, bash, dash, etc..
There's no need for an external command if you want the third line; if it's the 50th (give or take a dozen or two) or higher, use sed.
{ read;read;
read curyymm PRVYYMM CDDMmmYY bddMmmyy eddMmmyy
} < file1
echo "curyymm = $curyymm
PRVYYMM = $PRVYYMM
CDDMmmYY = $CDDMmmYY
bddMmmyy = $bddMmmyy
eddMmmyy = $eddMmmyy" > file2