Выходной образец моего файла приведен здесьКак объединить две строки в нужном месте, как будто она вытягивается вверх/вниз, используя AWK или СЭД
! S R Number : Class : !
635035 3
! Name : !
ADAM BASHA
+========================================+
! Code ! Description ! Amount !
+========================================+
! 2222 ! Tech.Exam Allow ! 340.00 !
! 3104 ! D A ! 19,524.43 !
! 3107 ! H R A ! 3,984.40 !
! 4113 ! Transport Allow ! 460.00 !
! : !
Net Amount Payable : 24,308.83
! S R Number : Class : !
551820 2
! Name : !
TOM SMITH
+========================================+
! Code ! Description ! Amount !
+========================================+
! 3104 ! D A ! 19,404.41 !
! 3107 ! H R A ! 3,960.60 !
! 4113 ! Transport Allow ! 460.00 !
! : !
Net Amount Payable : 23,825.01
! S R Number : Class : !
550044 3
! Name : !
ROBERT LOUIS
Я хочу, чтобы каждые две строки, подобные этому формату, приведенному ниже будут объединены
! S R Number : Class : !
635035 3
Я хочу, чтобы эти две линии должны быть объединены следующим образом
! S R Number : 635035 Class : 3 !
И весь результат должен быть е olkes:
! S R Number : 635035 Class : 3 !
! Name : ADAM BASHA !
+========================================+
! Code ! Description ! Amount !
+========================================+
! 2222 ! Tech.Exam Allow ! 340.00 !
! 3104 ! D A ! 19,524.43 !
! 3107 ! H R A ! 3,984.40 !
! 4113 ! Transport Allow ! 460.00 !
! Net Amount Payable : 24,308.83 !
! S R Number : 551820 Class : 2 !
! Name : TOM SMITH !
+========================================+
! Code ! Description ! Amount !
+========================================+
! 3104 ! D A ! 19,404.41 !
! 3107 ! H R A ! 3,960.60 !
! 4113 ! Transport Allow ! 460.00 !
! Net Amount Payable : 23,825.01 !
! S R Number : 550044 Class : 3 !
! Name : ROBERT LOUIS !
Файл слишком большой, поэтому я разместил его образец. Этот выходной файл, по-видимому, разбивает некоторые строки на две строки, например строки, содержащие S R Number, Name and Net Amount Payable
. Пожалуйста, предоставьте это решение.
Ответы, которые уже даны, работают нормально, только они обрабатывают все строки, а не только линии, которые разделены. Спасибо всем.
Я отредактировал свой вопрос, используя практический пример.
интересно, что вы не можете сделать с 'awk'? +1 :) – Inian
Это больше того, что ** не должно ** вы делаете :-). awk предназначен для манипулирования текстом. период. полная остановка. Если вы хотите сделать что-то другое, кроме этого (перемещение файлов вокруг процессов убийства?), Вы должны использовать что-то еще (например, shell). –
Все предлагаемые решения отлично работают, но обрабатывают все строки в файле. Мне нужно только объединить две строки: у одного есть ** Имя **, а у другого есть ** фактическое имя **, как в вопросе. У меня много таких случаев в файле. Мне нужно объединить две линии, имеющие эти два шаблона, как указано выше. Спасибо всем за отличные решения. – adam1969in