Editing part of the string

Hi guys got a problem here hope u all can help me. I learn that sed can actually edit a string but you need to know the old attribute to change to new 1.
Example:

 sed "s/$title:$author/$title:$Nauthor/g" 
"Harry Potter - The Half Blood Prince:J.K Rowling:40.30:10:50"

Each delimiter : represent 1 new attribute.
can i change 40.30 without knowing it 40.30 but using it position to change??

From BookDB.txt? ))) This is at least the third question for the last two days.

Yes, you can. If you will study good. :rolleyes:

Is it? =.= but my shell coding one/two day lesson only then assignment came!! i try my very best to learn from google.com but really cannot solve this part =( help pls !!

From the command line:

$ awk -v var="YOUR PRICE" '
BEGIN { FS=OFS=":" }  
/^Harry Potter/ { $3=var }
{ print }
'  BookDB.txt

But please don't ask me how this works.
Or with sed:

$ var="YOUR PRICE"; sed -n '/^Harry Potter/s/[^:]*:/'"$var"':/3p' BookDB.txt

Thank!! i will go google and learn what each symbol mean