====== SED - New line ======
Neither **\s*** (as I would use in javascript and php) nor **\s\{3,\}** works.
Note too that **\n** is not recognized as a new line. To get a new line **\'$'\n** must be used.
To modify the .profile file.
#sed -i .bak 's/^\(export[ ]*JAVA_HOME.*\)/#&\'$'\nexport\ JAVA_HOME=\/Users\/${USER}\/\.java_jdk_6\/soylatte16-i386-1\.0\.3/' ~/.profile
#sed -i .bak 's/^\(export[ ]*JAVA_HOME.*\)/&\'$'\nexport\ PATH=${JAVA_HOME}\/bin:$PATH/' ~/.profile
The two lines above did what I wanted but the second line did a backup of the modified ~/.profile. So I came up with the next solution.
sed -i .bak 's/^\(export[ ]*JAVA_HOME.*\)/#&\
\export\ JAVA_HOME=\/Users\/${USER}\/\.java_jdk_6\/soylatte16-i386-1\.0\.3\
\export\ PATH=${JAVA_HOME}\/bin:$PATH/' ~/.profile
The new line is achieved by ending a regex with \ and continuing it with \ on the next line. If there are white spaces in front of \ they will also appear in ~/.profile.