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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to use Perl to merge multi-line into single line
# 1  
Old 05-11-2009
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 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL
abc LST TRALIC:;
BAM ljha1 101.203.57.23 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL
abc LST TRALIC:;
BAM comm 101.204.4.82 5023 2009-03-27 07:16:48+08:00 go 0 PP 2009-03-27 07:16:54+08:00 EMSOP
abc /*76518799*/LST TRFIINF:TA=ALL;

******Merge to single line*****
BAM admin 101.203.57.22 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL abc LST TRALIC:;
BAM ljha1 101.203.57.23 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL abc LST TRALIC:;
BAM comm 101.204.4.82 5023 2009-03-27 07:16:48+08:00 go 0 PP 2009-03-27 07:16:54+08:00 EMSOP abc /*76518799*/LST TRFIINF:TA=ALL;


Thank You

HappyDay
# 2  
Old 05-11-2009
if each line are extended to two lines, can use below simple code:

Code:
cat a.txt | paste - -

Code:
undef $/;
open $fh,"<","a.txt";
$str=<$fh>;
$str=~s/\n/ /g;
@arr=split("BAM",$str);
map { print "BAM $_\n" if $_} @arr;

# 3  
Old 05-11-2009
Cherry,

Thank you very much !!!
SmilieSmilie

HappyDay
# 4  
Old 05-11-2009
Hello,

How about can we remove the space and also add the | between? (like the red color output

******Org. Multi-line*****
BAM admin 101.203.57.22 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL
abc LST TRALIC:;
BAM ljha1 101.203.57.23 2059 2009-03-27 07:20:30+08:00 go 0 PP 2009-03-27 07:20:30+08:00 LOCAL
abc LST TRALIC:;
BAM comm 101.204.4.82 5023 2009-03-27 07:16:48+08:00 go 0 PP 2009-03-27 07:16:54+08:00 EMSOP
abc /*76518799*/LST TRFIINF:TA=ALL;

******Merge to single line*****
BAM admin|101.203.57.22 2059|2009-03-27 07:20:30+08:00|go|0|PP 2009-03-27|07:20:30+08:00|LOCAL|abc|LST TRALIC:;


Thank You

HappyDay
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

Multi line log files to single line format

I want to read the log file which was generate from other command . And the output was having multi line in log files for job name and server name. But i need to make all the logs on one line Source file 07/15/2018 17:02:00 TRANSLOG_1700 Server0005_SQL ... (2 Replies)
Discussion started by: ranjancom2000
2 Replies

3. Shell Programming and Scripting

Help with reformat single-line multi-fasta into multi-line multi-fasta

Input File: >Seq1 ASDADAFASFASFADGSDGFSDFSDFSDFSDFSDFSDFSDFSDFSDFSDFSD >Seq2 SDASDAQEQWEQeqAdfaasd >Seq3 ASDSALGHIUDFJANCAGPATHLACJHPAUTYNJKG ...... Desired Output File >Seq1 ASDADAFASF ASFADGSDGF SDFSDFSDFS DFSDFSDFSD FSDFSDFSDF SD >Seq2 (4 Replies)
Discussion started by: patrick87
4 Replies

4. UNIX for Dummies Questions & Answers

Remove multi line and single line comments

Hi, I am trying to remove multi line and single line comments like examples below I have tried this pattern. it works fine for single line comments and multi line comments in a single line only. but this fails when the comments are extended in multiple lines as shown in the comment 2 of... (3 Replies)
Discussion started by: ahmedwaseem2000
3 Replies

5. Shell Programming and Scripting

Joining multi-line output to a single line in a group

Hi, My Oracle query is returing below o/p ---------------------------------------------------------- Ins trnas value a lkp1 x a lkp1 y b lkp1 a b lkp2 x b lkp2 y ... (7 Replies)
Discussion started by: gvk25
7 Replies

6. 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

7. Shell Programming and Scripting

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

Hello, Did anyone know how to write a perl script to merge the multi-line into a single line where each line with start at timestamp Input--> timestamp=2009-11-10-04.55.20.829347; a; b; c; timestamp=2009-11-10-04.55.20.829347; aa; bb; cc; (5 Replies)
Discussion started by: happyday
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

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. *****Original Log*****... (4 Replies)
Discussion started by: happyday
4 Replies

10. Shell Programming and Scripting

Multi-line output to single line

Hello, How can I take the following output: outputa outputb outputc and turn it into single line ouput, with a single space between each field like below: outputa outputb outputc (7 Replies)
Discussion started by: LinuxRacr
7 Replies
Login or Register to Ask a Question