Have sed make substitute on string but SKIP first occurrence
sed
Solution
You can avoid the problem with `g` and n
Replace all of them, then undo the first one:
sed -e 's/ /\\ /g' -e 's/\\ / /1'
Here's another method which uses the `t` branch-if-substituted command:
sed ':a;s/\([^ ]* .*[^\\]\) \(.*\)/\1\\ \2/;ta'
which has the advantage of leaving existing backslash-space sequences in the input intact.
Problem
I have been through the sed one liners but am still having trouble with my goal. I want to substitue matching strings on all but the first occurrence of a line. My exact usage would be: ``` $ echo 'cd /Users/joeuser/bump bonding/initial trials' | sed <<MAGIC HAPPENS> cd /Users/joeuser/bump\ bonding/initial\ trials ``` The line replaced the space in `bump bonding` with the slash space `bump\ bonding` so that I can execute this line (since when the spaces aren't escaped I wouldn't be able to cd to it). Update: I solved this by just using single quotes and outputting ``` cd 'blah blah/thing/another space/' ``` and then using `source` to execute the command. But it didn't answer my question. I'm still curious though... how would you use `sed` to fix it?