У меня есть текстовый файл, где записи разбиты на две строки. Я хотел бы поместить их в одну строку. Записи выглядят примерно так:
2013-07-29
apt-get install git
2013-07-29
apt-get install rsync
2013-07-31
apt-get install nmap
2013-08-02
apt-get install cifs-utils
2013-08-05
apt-get install telnet
Я хотел бы получить следующее:
2013-07-29 apt-get install git
2013-07-29 apt-get install rsync
2013-07-31 apt-get install nmap
2013-08-02 apt-get install cifs-utils
2013-08-05 apt-get install telnet
Я пытался с sed
, но я не могу сопоставить две линии. Есть ли какая-то хитрость sed
или есть какой-то лучший инструмент?
text-processing
sed
Мартин Вегтер
источник
источник
Ответы:
N
присоединяет следующую строку ввода к пространству шаблонаs/\n/ /
заменяет новую строку, разделяющую строки пробелом.или:
-n
отключает автоматическую печать пространства шаблона в качестве последней команды/regex/p
печатает строки, соответствующие регулярному выражениюИспользуйте
g
модификатор для замен, если вы объединяете более двух строк, напримерN;N;N;s/\n/ /g
.источник
sed 's/>\n</>,</'
до работы, пока не понял, что sed работает по очереди одновременно. один быстрый поиск duckduckgo и @peterph позволили мне сохранить остальную часть моих волосКажется, что
apt-get
строки имеют предшествующий пробел. Высказывание:должен дать желаемый результат.
Кроме того, вы также можете использовать
paste
:источник