2015-04-03 2 views
-1

I'v получил выход как:объединить две строки в одну и добавить символ

TEXT 
SOMETEXTELSE 

Мне нужно объединить строки и добавить символ «R» между ними, используя нравится:

TEXT R SOMETEXTELSE 

Как я могу это сделать?

Thanks

Обновление. Сожалею. Вот COMAND

egrep -B1 [email protected]сranium.*FAILED /var/log/alert.log | tail -2 

Здесь выход:

ERR-0045 Database is down for given SID. Can't perform backup. 
2014-12-19 16:15:01 [email protected]сranium Backuper:bkp status: FAILED 98456876 

мне нужен выход, как:

ERR-0045 Database is down for given SID. Can't perform backup. R 2014-12-19 16:15:01 [email protected]сranium Backuper:bkp status: FAILED 98456876 
+0

Насколько большой файл? Как вы определяете, какие линии объединяются? Это только эти две строки? Нужна дополнительная информация. – JNevill

+0

Извините. Просто обновил сообщение –

ответ

0
sed '$! s/.*/\0 R/' | paste -s -d " " 
+0

Спасибо. Это то, что мне нужно –

0

Пусть говорят, ваш выход генерируется seq 1 10, то возможно. ..

seq 1 10 | perl -pe 's/\n/ R /' | perl -pe 's/$/\n/' 
0

С AWK:

awk 'NR==1 {printf "%s R ", $0} NR == 2' 
Пояснение:

AWK считывает свою входную строку за строкой и сравнивает каждую строку к каждому pattern в серии pattern {action} пара.

NR == 1 {printf "%s R ", $0}:

Если текущая строка кулак линии (NR == 1), затем выполнить printf "%s R ", $0, что означает распечатать содержимое строки ($0), за которым следует пробел, а затем «R», затем пробел (в конце нет новой строки).

NR == 2:

Если текущая строка вторая строка (NR == 2) затем выполнить действие по умолчанию (поскольку никаких действий в {...} не указано), который должен напечатать содержимое строка, за которой следует новая строка (это было бы эквивалентно записи NR == 2 {print} или NR == 2 {print $0}).

+0

Подумайте о том, чтобы добавить краткое описание того, что этот снипп делает, то есть как он работает. – TheCodeArtist

+0

Спасибо. См. Раздел «Объяснение». – weibeld

0

Команда sed может использоваться с заменой линии связи N.

sed -e 'N;s/\n/ R /' 

Например:

$ printf "TEXT\nSOMETEXTELSE\n" | sed -e 'N;s/\n/ R /' 
TEXT R SOMETEXTELSE 
Смежные вопросы