Sponsored Content
Top Forums UNIX for Advanced & Expert Users Merge files with multi-line stanzas Post 302979217 by RudiC on Thursday 11th of August 2016 06:48:28 AM
Old 08-11-2016
This still is far from clear and complete. What should happen if there are several different "stanzas" for the same device, as for hp@JetNL97, that points to ports 9100, 9101, and 9102? And, are there any requirements on the order of output lines?
This is based an some assumptions on my side; it keeps the last device definition encountered and scraps the earlier ones. Plus, it has been developed and tested on my linux system; it may need some adaptions to run on your AIX. Still, I think it comes close to what you posted as the desired output:

Code:
awk '
!/^ /           {IX = $0
                 if (!(IX in TMP)) NIX[++CNT] = IX
                 delete TMP[IX]
                 next
                }
                {TMP[IX] = TMP[IX] RS $0
                }
END             {for (i=1; i<=CNT; i++) print NIX[i]  TMP[NIX[i]]
                }
' file[12]
62_it_91_1_las_ps:
        device = hp@Jetit01
hp@Jetit01:
        file = /var/spool/lpd/pio/@local/dev/hp@Jetit01#hpJetDirect#9100
        header = never
        trailer = never
        access = both
        backend = /usr/lib/lpd/pio/etc/piojetd Jetit01 9100
62_133_3_lbl:
        device = hp@Jet133
hp@Jet133:
        file = /var/spool/lpd/pio/@local/dev/hp@Jet133#hpJetDirect#9102
        header = never
        trailer = never
        access = both
        backend = /usr/lib/lpd/pio/etc/piojetd Jet133 9102
testnl:
        device = hp@JetNL95
hp@JetNL95:
        file = /var/spool/lpd/pio/@local/dev/hp@JetNL95#hpJetDirect#9100
        header = never
        trailer = never
        access = both
        backend = /usr/lib/lpd/pio/etc/piojetd JetNL95 9100
pnr5:
        device = hp@JetNL95
oss-prnsrv2_2:
        device = hp@JetNL97
hp@JetNL97:
        file = /var/spool/lpd/pio/@local/dev/hp@JetNL97#hpJetDirect#9100
        header = never
        trailer = never
        access = both
        backend = /usr/lib/lpd/pio/etc/piojetd JetNL97 9100
62_133_3_zebra:
        device = hp@Jet133
oss-prnsrv2_3:
        device = hp@JetNL97
oss-prnsrv2_1:
        device = hp@JetNL97
oss-prnsrv03_1:
        device = hp@JetNL98
hp@JetNL98:
        file = /var/spool/lpd/pio/@local/dev/hp@JetNL98#hpJetDirect#9100
        header = never
        trailer = never
        access = both
        backend = /usr/lib/lpd/pio/etc/piojetd JetNL98 9100


Last edited by RudiC; 08-11-2016 at 08:06 AM.. Reason: Removed one <TAB> from code and output.
 

10 More Discussions You Might Find Interesting

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

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

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

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

5. Shell Programming and Scripting

merge files based on line by line

Hi, lets assume the following details.. file 1 has below details abc|1234|xyz abc1|1234|xyz1 abc2|1234|xyz2 and file 2 has below details pqr|124|lskd ebwer|325|dfb wf|234|sdb I need out put shown below abc|1234|xyz pqr|124|lskd abc1|1234|xyz1 ebwer|325|dfb abc2|1234|xyz2... (4 Replies)
Discussion started by: alnhk
4 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

Multi-line filtering based on multi-line pattern in a file

I have a file with data records separated by multiple equals signs, as below. ========== RECORD 1 ========== RECORD 2 DATA LINE ========== RECORD 3 ========== RECORD 4 DATA LINE ========== RECORD 5 DATA LINE ========== I need to filter out all data from this file where the... (2 Replies)
Discussion started by: Finja
2 Replies

8. Shell Programming and Scripting

Take out First Line and merge all files

Hi Gurus, I have n number of files. Data which is in the files have column headers. I need to take them out and merge into one file. Can you help please? I need to do that little urgent. Thanks (4 Replies)
Discussion started by: raopatwari
4 Replies

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

10. 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
SHTOOL-ARX.TMP(1)					      GNU Portable Shell Tool						 SHTOOL-ARX.TMP(1)

NAME
shtool-arx - GNU shtool ar(1) extensional command SYNOPSIS
shtool arx [-t|--trace] [-C|--command cmd] op archive file [file ...] DESCRIPTION
shtool arx is a wrapper around the archiving tool ar(1). It provides the ability to create archives out of existing archives, i.e., if one of file matches ""*.a"", the archive member files of file are used instead of file itself. The trick of this command is the automatic handling of archive members which is especially interesting if one wants to construct a (usually top-level) library archive out of pre-built sub-library archives (usually staying inside subdirs) in a large source tree. For GNU libtool based projects, a similar functionality is provided by GNU libtool internally, too. OPTIONS
The following command line options are available. -t, --trace Shows the actually involved shell commands. -C, --command cmd Set the used ar(1) command to cmd instead of just "ar" (searched in $PATH). EXAMPLE
# Makefile AR=ar RANLIB=ranlib : OBJS=foo.o bar.o LIBS=baz/libbaz.a quux/libquux.a : libfoo.a: $(OBJS) $(LIBS) shtool arx -C $(AR) rc libfoo.a $(OBJS) $(LIBS) $(RANLIB) libfoo.a HISTORY
The GNU shtool arx command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 1999 for GNU shtool. It was prompted by need to build libraries out of sub-libraries inside the OSSP project. SEE ALSO
shtool(1), ar(1). 18-Jul-2008 shtool 2.0.8 SHTOOL-ARX.TMP(1)
All times are GMT -4. The time now is 02:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy