ОК, я знаю, что этот вопрос старый, но мне нужно было пройти через него, чтобы sed принял символ \ n. Я нашел решение, которое работает в bash, и я отмечаю его здесь для тех, кто сталкивается с той же проблемой.
Чтобы переформулировать проблему: заставьте sed принять новую строку с обратной косой чертой (или другие символы с обратной косой чертой).
Обходной путь в bash - использовать:
$'\n'
В bash строка $ '\ n' заменяется реальной новой строкой.
Единственное, что вам нужно сделать, это дважды убежать от \ n, поскольку вы должны убежать от самого слеша.
Чтобы сложить все вместе:
sed $'s/),(/),\\\n(/g' temp.txt
(foo),
(bar)
(foobar),
(foofoobar)
Если вы хотите, чтобы оно действительно изменилось, а не распечатывалось, используйте -i
sed -i $'s/),(/),\\\n(/g' temp.txt