08-13-2014
Concatenate three lines into one
Hi. I'm new to this forum.
I am attempting to parse an Audit Log from Cognos/TM1, selecting only Event IDs of "client" which are found on the "start-tag" record. These Logs are in a pseudo-XML format but not a true XML format. I want to FTP an Audit Log File from the Cognos server to our UNIX server. Then I want to look for "client" at position 28 in a given line, and upon finding that, write the current line and the next two lines after it as one output line. (We have Shell Scripts already that FTP data from Windows to UNIX, so I don't need assistance with that.)
These lines have CRLF (I think) after each one. When I view them in Windows-based editors (like TextPad), they are separate lines.
I'm a Unix script newbie. I've searched the Web for possible solutions but have not found any. I have found examples of merging two lines by patterns using sed and one using sed (I think) and a line range, but the sample had a hard-coded line range.
We run the AIX Flavor of UNIX at my company. We use KSH as the Shell Script most of the time.
Pseudo-code:
IF current-line-number line has "client" at position 28, write current-line-number concatenate current-line-number plus 1 concatenate current-line-number plus 2 FI
Thank you for your help.
Last edited by FredAtArrow; 08-13-2014 at 02:27 PM..
10 More Discussions You Might Find Interesting
1. UNIX Desktop Questions & Answers
I have a few lines like --
feature 1,
subfeat 0,
type 3,
subtype 1,
value 0,
--
feature 1,
subfeat 0,
type 1,
subtype 1,
value 0,
I would like to concatenate the... (1 Reply)
Discussion started by: shivi707
1 Replies
2. Shell Programming and Scripting
Hi all,
May you help me with this?
After extract only some lines that I need from a file, I would like to concatenate the remaining lines in a single line (paragraph).
Source file pattern:
Event Type: Warning
Event Source: Sorting
Event Category: None
Event ID: 1188
Date: 9/10/2008... (4 Replies)
Discussion started by: cgkmal
4 Replies
3. Shell Programming and Scripting
i have a mega file in this format:
a,
b,
c,
d,
=
a2,
b2,
c2,
d2,
=
a3,
b3
=
i want to combine lines until = meet. the result should be :
a,b,c,d,
a2,b2,c3,d2
a3,b3 (13 Replies)
Discussion started by: dtdt
13 Replies
4. Shell Programming and Scripting
Does anyone know a way I can fix my file below where it has lines that are cut?
Just like the (notice the space before ms,c=PH)..
dn: cn=english,ou=Messaging,ou=lang,o=subject,t=j
ms,c=PH
which should be
dn: cn=english,ou=Messaging,ou=lang,o=subject,t=jms,c=PH
The whole text file... (5 Replies)
Discussion started by: Orbix
5 Replies
5. Shell Programming and Scripting
Hi,
I have a text file with the following contents
/C=IT/O=INFN/OU=Personal Certificate/L=Napoli/CN=Some guy
/C=IT/O=INFN/CN=INFN CA
/O=Grid/O=NorduGrid/OU=uninett.no/CN=Another guy
/O=Grid/O=NorduGrid/CN=NorduGrid Certification Authority
/C=TW/O=AP/OU=GRID/CN=Someone else... (5 Replies)
Discussion started by: kerl
5 Replies
6. Shell Programming and Scripting
Hello,
I have been searching the forum for concatenation based on condition. I have been close enough but not got th exact one.
infile:
-----DB_Name ABC (X,
Y,Z).
DB_Name DEF (T).
DB_Name GHI (U
,V,W).
Desired Output file should be:
---------------------------DB_Name ABC... (8 Replies)
Discussion started by: indrajit_u
8 Replies
7. Shell Programming and Scripting
Hi,
I have a file such as:
---
>contig00001 length=35524 numreads=2944
gACGCCGCGCGCCGCGGCCAGGGCTGGCCCA
CAGGCCGCGCGGCGTCGGCTGGCTGAG
>contig00002 length=4242 numreads=43423
ATGCCGAAGGTCCGCCTGGGGCTGG
CGCCGGGAGCATGTAGCG
---
I would like to concatenate the lines not starting with ">"... (9 Replies)
Discussion started by: s052866
9 Replies
8. Programming
Hi All,
Can any one help me in finding the solution for concatenating two or more lines in a file and writing them to a temporary file.
for Example:
He is a wise student.
So he got first rank.
This is in a file i want the output as
He is a wise student so he got first rank. into a file... (3 Replies)
Discussion started by: uday.sena.m
3 Replies
9. Shell Programming and Scripting
Given the pattern below:
3113296571|NULL|NULL|NULL||N| 1| 0| 926667| 1001036| 0| 3076120438|NULL|NULL|NULL|NULL|DUE FOR NEW CONSENT!|N|NULL|
10198318|2011-07-25-12.34.02.786000|NULL|NULL|NULL| 0
3113336478|NULL|NULL|NULL||N| 1| ... (16 Replies)
Discussion started by: lemele
16 Replies
10. Shell Programming and Scripting
How to concatenate lines with specific pattern?
I have data dumped from a table into text file. In some occurrence the data row is split into two rows.
Example:
12345678|Global Test|Global Test Task|My Request|Date|Date|Date|1|1|
12345679|Global Test2|Global Test Task2|My... (8 Replies)
Discussion started by: nixtime
8 Replies
PASTE(1) BSD General Commands Manual PASTE(1)
NAME
paste -- merge corresponding or subsequent lines of files
SYNOPSIS
paste [-s] [-d list] file ...
DESCRIPTION
The paste utility concatenates the corresponding lines of the given input files, replacing all but the last file's newline characters with a
single tab character, and writes the resulting lines to standard output. If end-of-file is reached on an input file while other input files
still contain data, the file is treated as if it were an endless source of empty lines.
The options are as follows:
-d list Use one or more of the provided characters to replace the newline characters instead of the default tab. The characters in list
are used circularly, i.e., when list is exhausted the first character from list is reused. This continues until a line from the
last input file (in default operation) or the last line in each file (using the -s option) is displayed, at which time paste
begins selecting characters from the beginning of list again.
The following special characters can also be used in list:
newline character
tab character
\ backslash character
Empty string (not a null character).
Any other character preceded by a backslash is equivalent to the character itself.
-s Concatenate all of the lines of each separate input file in command line order. The newline character of every line except the
last line in each input file is replaced with the tab character, unless otherwise specified by the -d option.
If '-' is specified for one or more of the input files, the standard input is used; standard input is read one line at a time, circularly,
for each instance of '-'.
EXIT STATUS
The paste utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
List the files in the current directory in three columns:
ls | paste - - -
Combine pairs of lines from a file into single lines:
paste -s -d '
' myfile
Number the lines in a file, similar to nl(1):
sed = myfile | paste -s -d '
' - -
Create a colon-separated list of directories named bin, suitable for use in the PATH environment variable:
find / -name bin -type d | paste -s -d : -
SEE ALSO
cut(1), lam(1)
STANDARDS
The paste utility is expected to be IEEE Std 1003.2 (``POSIX.2'') compatible.
HISTORY
A paste command appeared in Version 32V AT&T UNIX.
BSD
June 25, 2004 BSD