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.