Merge multi-lines into one single line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merge multi-lines into one single line
# 1  
Old 05-09-2009
Merge multi-lines into one single line

Hi,

Can anyone help me for merge the following multi-line log which beginning with a number and time: into one line. For each line need to delete the return and add a space. Please see the red color line.
Code:
*****Original Log*****
087;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-703;1;12475;SYHLR6AP1B;1.1.1.1;0000000062;HGPDI:MSISDN=12345678,APNID=1,EQOSID=365;

EXECUTED

;
187;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-701;1;12473;SYHLR6AP1B;1.1.1.1;0000000129;HGSNC:MSISDN=12345678,NAM=0,KEEP;

NOT ACCEPTED
FAULT CODE 220
SUBSCRIBER NETWORK ACCESS MODE HAS ALREADY THAT VALUE

;

*****Log line merged*****
087;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-703;1;12475;SYHLR6AP1B;1.1.1.1;0000000062;HGPDI:MSISDN=12345678,APNID=1,EQOSID=365; EXECUTED ;
187;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-701;1;12473;SYHLR6AP1B;1.1.1.1;0000000129;HGSNC:MSISDN=12345678,NAM=0,KEEP; NOT ACCEPTED FAULT CODE 220 SUBSCRIBER NETWORK ACCESS MODE HAS ALREADY THAT VALUE ;

Thank You

HappyDay
# 2  
Old 05-09-2009
Try this:

Code:
sed -e '/^$/d' file| tr '\n' ' '

or

Code:
awk '{printf("%s",$0)}'

cheers,
Devaraj Takhellambam
# 3  
Old 05-09-2009
devtakh,
Thanks

Can it be done by perl?
# 4  
Old 05-09-2009
Quote:
Originally Posted by happyday
Can it be done by perl?
Of course it can be done by perl.

Code:
$
$ cat -n input.txt
     1  087;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-703;1;
     2
     3  EXECUTED
     4
     5  ;
     6  187;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-701;1;
     7
     8  NOT ACCEPTED
     9  FAULT CODE 220
    10  SUBSCRIBER NETWORK ACCESS MODE
    11
    12  ;
$
$
$ perl -ne '{ chomp;
  if (!/^$/) {
    if ($buf eq "") {$buf = $_}
    elsif (/^[^;]/) {$buf = $buf." ".$_}
    else {$buf = $buf." ".$_; print "$buf\n"; $buf=""}
  }
}' input.txt
087;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-703;1; EXECUTED ;
187;2008-12-06;084403;mc;;SYHLR6AP1D\LNZW;AD-701;1; NOT ACCEPTED FAULT CODE 220 SUBSCRIBER NETWORK ACCESS MODE ;
$
$

tyler_durden
# 5  
Old 05-09-2009
This should work for you.
Code:
awk '/^;$/{f=0;print};f||/^[0-9]/{f=1;printf}' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Merge multi-lines into one single line using shell script or Linux command

Hi, Can anyone help me for merge the following multi-line log which beginning with a " and line ending with ": into one line. *****Original Log***** 087;2008-12-06;084403;"mc;;SYHLR6AP1D\LNZW;AD-703;1;12475;SYHLR6AP1B;1.1.1.1;0000000062;HGPDI:MSISDN=12345678,APNID=1,EQOSID=365;... (3 Replies)
Discussion started by: rajeshlinux2010
3 Replies

2. Shell Programming and Scripting

Merge multiple lines into a single line

Hi all, I'm relatively new to scripting, I can do pretty basic things. I have a daily log file that looks like: timestamp=2017-06-28-01.01.35.080576; event status=0; userid=user1; authid=user1; application id=10.10.10.10.11111.12345678901; application name=GUI; ... (29 Replies)
Discussion started by: dwdnet
29 Replies

3. Shell Programming and Scripting

joining multi-line file into single lines

Hi, I have a file like mentioned below..For each specific id starting with > I want to join the sequence in multiple lines to a single line..Is there a simple way in awk or sed to do this >ENST00000558922 cdna:KNOWN TCCAGGATCCAGCCTCCCGATCACCGCGCTAGTCCTCGCCCTGCCTGGGCTTCCCCAGAG... (2 Replies)
Discussion started by: Diya123
2 Replies

4. Shell Programming and Scripting

Multi lines to single line

HI, My input file contains the data as like below: A1234119993 B6271113 Bghjkjk A1234119992 B6271113hi Bghjkjkmkl the output i require is : A1234119993 B6271113 Bghjkjk A1234119992 B6271113hi Bghjkjkmkl Please help me in this. Thanks (6 Replies)
Discussion started by: pandeesh
6 Replies

5. Shell Programming and Scripting

Merge multi-line output into a single line

Hello I did do a search and the past threads doesn't really solve my issue. (using various awk commands) I need to combine the output from java -version into 1 line, but I am having difficulties. When you exec java -version, you get: java version "1.5.0_06" Java(TM) 2 Runtime... (5 Replies)
Discussion started by: flagman5
5 Replies

6. UNIX for Advanced & Expert Users

Merge a group of lines into single line

Hi Everybody, Below are the contents of the a text file .., SN = 8 MSI = 405027002277133 IKVALUE = DE6AA6A11D42B69DF6398D44B17BC6F2 K4SNO = 2 CARDTYPE = SIM ALG = COMP128_3 SN = 8 MSI = 405027002546734 IKVALUE = 1D9F8BAA73973D8FBF8CBFB01436D822 K4SNO = 2 CARDTYPE = SIM ALG =... (8 Replies)
Discussion started by: prasanth_babu
8 Replies

7. Shell Programming and Scripting

merge lines into single line based on symbol \t

The symbols are \t and \t\t (note: not tab) If the line starts with \t merge them into a single line upto symbol \t\t \t\t to end and start new line I able to join in a single line but not ending at \t\t and I completely confused help would be appreciated:b::D Input \ta tab XXXXXXXXXX \te... (5 Replies)
Discussion started by: repinementer
5 Replies

8. Shell Programming and Scripting

Help on Merge multi-lines into one single line

Hello, Can anyone let me know how to use Perl script to Merge following multi-lines into one single line... ***** Multi-line***** FILE_Write root OK Tue Jul 01 00:00:00 2008 cl_get_path file descriptor = 1 FILE_Write root OK ... (5 Replies)
Discussion started by: happyday
5 Replies

9. Shell Programming and Scripting

How to use Perl to merge multi-line into single line

Hi, Can anyone know how to use perl to merge the following multi-line information which beginning with "BAM" into one line. For each line need to delete the return and add a space. Please see the red color line. ******Org. Multi-line) BAM admin 101.203.57.22 ... (3 Replies)
Discussion started by: happyday
3 Replies

10. Shell Programming and Scripting

merge multi-lines into one line

Hi, Can anyone help me for merge the following multi-line logs( the black lines) which beginning with time: into one line. For the line with "-", it needs to be deleted. Please see the red color line. ######################################### time: 20080817073334 dn: uid=ok,ou=nbt... (3 Replies)
Discussion started by: missyou
3 Replies
Login or Register to Ask a Question