Если вы хотите, чтобы каждая строка заканчивалась парой обратной косой черты, пробелом, другой обратной косой чертой и символом 'n' (за которым следует символ новой строки), то:
sed 's/$/\\\\ \\n/'
Если это не то, что вы хотите, пожалуйста, объясните, что вы хотите.
Одиночные кавычки мешают оболочке портиться с обратными слешами. С двойными кавычками это становится:
sed "s/\$/\\\\\\\\ \\\\n/"
Да - 8 зазоров подряд! Веселье, не правда ли?
Адаптировать его к цитируемому вами сценарию сложно. Первый термин использует «\t
», но неясно, будет ли это табуляция или фактическая обратная косая черта и буква «t».
sed -e 's@[[:space:]]@\t\&\t@g' \
-e 's@[[:space:]]*&[[:space:]]*$@\\\\ \\n@g'
Если вам нужны фактические вкладки в выводе, я обычно печатаю их как вкладки (убедившись, что у меня не установлен vim для расширенных таблиц в то время). Если мне нужно расширить '\t
', то я обычно использую Perl, поскольку знаю его правила, и разные оболочки имеют разные представления о правилах. Обратите внимание, что я опустил '*' сразу после '&' в последнем матче; Я думаю, вы хотели, чтобы '&', добавленное предыдущим правилом, было удалено.