2011-12-20 3 views
1

Нужна помощь с разработкой сценария, чтобы присоединиться строки в текстовом файле, т.е.Объединение строк в текстовом файле

Blah 
\Blah Blah\Bhal 
1 

Blah2 
\Blah Blah\Blah2 
600 

к:

Blah:\Blah Blah\Bhal:1 
Blah2:\Blah Blah\Blah2:2 

Выход был сгенерирован с помощью пакетного файла DOS, но я могу также провести синтаксический анализ в BASH, если это будет легче.

+0

Я не вижу никакого рисунка здесь ... Где должны быть размещены двоеточия и почему? – fge

+0

Существует шаблон, но вы должны выглядеть тяжело. По общему признанию, ОП мог бы служить лучшим примером. –

ответ

2

Вы можете использовать tr изменить символ новой строки (\n) что-то другое:

tr "\\n" ":" < myfile 

Это заменит каждую новую линию для :.

Имейте в виду, что если у вас есть:

foo 

bar 

Результат будет foo::bar (поскольку у вас есть два перевода строки). Соответственно измените.

+1

+1 для бесполезного использования кошки. – milancurcic

+1

@ IRO-bot: Вот как я рулон! Кроме того, <3 ваше имя пользователя :) –

4

Самый элегантный вариант на мой взгляд, использовать пасту

Чтобы соединить 2 линии

paste -sd'::\n' 

Чтобы присоединиться к 3 линии

paste -sd':::\n' 

и так далее.

Смежные вопросы