Вы можете избежать проблемы с g
и n
Замените их все, затем отмените первый:
sed -e 's/ /\\ /g' -e 's/\\ / /1'
Вот еще один метод, использующий команду t
branch-if-replace:
sed ':a;s/\([^ ]* .*[^\\]\) \(.*\)/\1\\ \2/;ta'
, преимущество которого заключается в том, что существующие последовательности с обратной косой чертой на входе остаются нетронутыми.