Вы не можете заменять символы новой строки построчно на sed
. Вы должны накапливать строки и заменять новые строки между их.
text abc\n <- can't replace this one
text abc\ntext def\n <- you can replace the one after "abc" but not the one at the end
Этот скрипт sed
накапливает все строки и удаляет все новые строки, кроме последнего:
sed -n '1{x;d};${H;x;s/\n/\t/g;p};{H}'
Кстати, ваш sed
скрипт sed -e "s_/\n_/\t_g"
пытается сказать "заменить все слэши, за которыми следуют символы новой строки, на косые черты с последующими вкладками". Подчеркивания играют роль разделителей для команды s
, так что косые черты можно легче использовать в качестве символов для поиска и замены.