Просто используйте cat
(если Вам нравятся кошки ;-)) и paste
:
cat file.in | paste -d, - - > file.out
Объяснение: paste
чтения из многих файлов и вставки вместе соответствующие строки (строка 1 из первого файла со строкой 1 из второго файла и т.д.):
paste file1 file2 ...
Вместо имени файла мы можем использовать -
(тире). paste
проводит первую строку от file1 (который является stdin). Затем это хочет считать первую строку из file2 (который является также stdin). Однако, так как первая строка stdin была уже считана и обработана, что теперь ожидает на входном потоке, вторая строка stdin, который paste
счастливо связующие звенья к первому. -d
опция устанавливает разделитель, чтобы быть запятой, а не вкладкой.
С другой стороны, сделайте
cat file.in | sed "N;s/\n/,/" > file.out
P.S. Да, можно упростить вышеупомянутое до
< file.in sed "N;s/\n/,/" > file.out
или
< file.in paste -d, - - > file.out
который имеет преимущество не использования cat
.
Однако я не использовал эту идиому нарочно по причинам ясности - это является менее подробным, и мне нравится cat
(КОШКИ ХОРОШИ). Поэтому не редактируйте.
С другой стороны, если Вы предпочитаете вставку кошкам (вставка является командой для конкатенации файлов горизонтально, в то время как кошка связывает их вертикально), можно использовать:
paste file.in | paste -d, - -
Точно, у меня только есть эти ужасные шрифты.
Я запускаю Ubuntu 13.04, двоичный файл прибывает из официального FTP-сервера, http://ftp.gnu.org/pub/gnu/emacs/
Я скомпилировал его с./настраивать, сделайте, сделайте установку. Остальная часть его работает.
Нет ничего, что можно сделать с комбинацией Ubuntu 13.04 + emacs24. Я имел ту же проблему и искал решение напрасно.
Или выполненный emacs23 или попытка с Ubuntu 13.10, которая была недавно выпущена.