Awk concatenation in different lines

Hi All

I have the data as

id-number 01
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0

id-number 02
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0

.
.

I want the out put as
id-number 01 name-id x0 input-id x0 output-id x0
id-number 01 name-id x0 input-id x0 output-id x0
id-number 01 name-id x0 input-id x0 output-id x0

id-number 02 name-id x0 input-id x0 output-id x0
id-number 02 name-id x0 input-id x0 output-id x0
id-number 02 name-id x0 input-id x0 output-id x0

i want this using awk/sed

we can delimit the file with text "id-number"
Thanks

Welcome to the forum. Here is one possibility:

awk '/id-number/{h=$0" ";next} NF{printf h}1' infile
1 Like

Thanks dude Scrutinizer

ur script worked perfect

i forgot to some information in the post like
the data can also as

id-number 01
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0

id-number 02
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0

id-number 03

id-number 04
name-id x0 input-id x0 output-id x0
name-id x0 input-id x0 output-id x0
.
.
id-number 03 doesn't have any info for itself but it should not be deleted the
the output must be like this

id-number 01 name-id x0 input-id x0 output-id x0
id-number 01 name-id x0 input-id x0 output-id x0
id-number 01 name-id x0 input-id x0 output-id x0

id-number 02 name-id x0 input-id x0 output-id x0
id-number 02 name-id x0 input-id x0 output-id x0
id-number 02 name-id x0 input-id x0 output-id x0

id-number 03

id-number 04 name-id x0 input-id x0 output-id x0
id-number 04 name-id x0 input-id x0 output-id x0

thanks

Hi

 awk '/id-number/{h=$0" ";i=0;next} NF{printf h;print;i++;next;}{if (i==0) {printf h;print;}}1' infile

Guru.

1 Like

wonderful GURU *****
Thanks