Bash Script Help...search then read from file: change text and pipe back...

Hello,

I am trying to make a bash script that can pull data from a file and then change one part of said data.

I want to search by username and pull the full line. That way there is a way to replace just one part of that line then return it back to the file.

My Data is stored like:

john.smith|Smith, John|DATA1|DATA2|DATA3|DATA4|DATA5

There are 120 lines like that. So lets say I want to Search for John Smith. Return that line and just change the text between the | 's at DATA3 then write it back to the original file.

There could be more then one user using this script at once (I kinda got it to work saving to a file then piping out... But I just started learning Bash scripting this month so...yeah so not very good yet.

Thanks,
Jason

This thread is also relevant to my interests