02-07-2012
Parsing and filtering multiline text into comma separated line
I have a log file that contains several reports with following format.
<Start of delimiter> Report1 header
Report1 header continue
Report1 header continue
Record1 header
Record1 header continue
Record1 header continue
field1 field2 field3 field4
------ ------ ------ ------
value1 value2 value3 value4
Record1 header
Record1 header continue
Record1 header continue
field5 field6 field7 field8 field9
------ ------ ------ ------ ------
value5 value6 value7 value8 value9
Record1 header
Record1 header continue
Record1 header continue
field10 field11 field12
------ ------ ------
value10 value11 value12
Report1 Footer
<End of delimiter>
<Start of delimiter> Report2 header
Report2 header continue
Report2 header continue
Record2 header
Record2 header continue
Record2 header continue
field13 field14
------ ------
value13 value14
Record2 header
Record2 header continue
Record2 header continue
field15 field16 field17 field18 field19
------ ------ ------ ------ ------
value15 value16 value17 value18 value19
Report2 Footer
<End of delimiter>
field1, field2 etc are various names and are all different and not necessarily written as field1, field2
I am interested in parsing the log file so that final output looks like this
value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,value11,value12,value13,value 14,value15,value16,value17,value18,value19
I would appreciate if people throw in some ideas on how to filter the log file so that only comma separated values are printed in single line.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi unix guru's
I want to execute a shell script like ksh printdetails.ksh Andy,Bob,Daisy,Johnson
like passing all the four names in the as the arguments and these arguments are varies between 1 to 10.
How to pass these names to the shell script variable.
and also i want to know the count... (4 Replies)
Discussion started by: Reddy482
4 Replies
2. Shell Programming and Scripting
Kindly i want to concatenate every 12 lines ina file, using a comma separator between fields (each line)?
can anyone help please?
thanks a lot in advance. (5 Replies)
Discussion started by: m_wassal
5 Replies
3. Shell Programming and Scripting
Hi,
I have a file with th elist of patches separated by comma, like below:
patch1, patch 2, patch 3................
t\The number of patches is not known as it changes every time.
I need assistance in writing a routine such as it will take patch1 as first variable and performs the... (4 Replies)
Discussion started by: avikaljain
4 Replies
4. Shell Programming and Scripting
Hi All,
I am facing issue, to read words in line, line as follow and i want to read word at each comma
1,you,are,two
So i want read like
1
you
are
two
Thanks (1 Reply)
Discussion started by: sujit_kashyap
1 Replies
5. UNIX for Dummies Questions & Answers
Hi,
I have a large number of files which are written as csv (comma-separated values).
Does anyone know of simple sed/awk command do achieve this?
Thanks!
---------- Post updated at 10:59 AM ---------- Previous update was at 10:54 AM ----------
Guess I asked this too soon. Found the... (0 Replies)
Discussion started by: lost.identity
0 Replies
6. Shell Programming and Scripting
hello experts,
i am retrieving values in variables jobKey and jobName within my shell script. these values are returned to me within braces and i am using following command to remove those braces:
jobKeys=`echo $jobKeys | sed 's:^.\(.*\).$:\1:'`
jobNames=`echo $jobNames | sed... (1 Reply)
Discussion started by: avikaljain
1 Replies
7. Shell Programming and Scripting
Hi Everyone,
On my Linux box I have a text file having block of few lines and this block lines separated by one blank line. I would like to format and print these lines in such a way that this entire block of lines will come as single comma separated line & again next block of lines in next... (7 Replies)
Discussion started by: gr8_usk
7 Replies
8. Shell Programming and Scripting
I am trying to change a file that looks like this:
file, announcement,date, server, server01, server02, server06, file04, rec01, rec04, rec03... etc
into a vertical file like this:
file
announcement
date
server
server01
server02
server06
The file does not have to be sorted... (5 Replies)
Discussion started by: newbie2010
5 Replies
9. Shell Programming and Scripting
Hi All,
I'm trying to pass the comma separated values (string) returned from Plsql Procedure to UNIX variable.
getting the below log message
cat: -: Bad file descriptor
awk: cmd. line:1: fatal: error reading input file `-': Bad file descriptor
The output coming from plsql procedure is... (3 Replies)
Discussion started by: Mahesh3089
3 Replies
10. UNIX for Advanced & Expert Users
In Linux you can do this to put comma separated data on its own line like this.
sed 's/ */&\n/g' /tmp/ports
sed 's/ */\n/g' /tmp/ports
How do you do this in AIX? It is not working. Is there another way to do this? Something like this.
1, 2, 3, 4
To look like this.
1
2
3
4 (4 Replies)
Discussion started by: cokedude
4 Replies
LEARN ABOUT DEBIAN
tm::serializable::csv
TM::Serializable::CSV(3pm) User Contributed Perl Documentation TM::Serializable::CSV(3pm)
NAME
TM::Serializable::CSV - Topic Maps, trait for parsing (and later dumping) CSV stream
SYNOPSIS
# 1) bare bones
my $tm = .....; # get a map from somewhere (can be empty)
Class::Trait->apply ($tm, "TM::Serializable::CSV");
use Perl6::Slurp;
$tm->deserialize (slurp 'myugly.csv');
# 2) exploiting the timed sync in/out mechanism
my $tm = new TM::.... (url => 'file:myugly.csv'); # get a RESOURCEABLE map from somewhere
$tm->sync_in;
DESCRIPTION
This trait provides parsing and dumping from CSV formatted text streams.
INTERFACE
Methods
deserialize
$tm->deserialize ($text)
This method consumes the text string passed in and interprets it as CSV formatted information. What topic map information is generated,
depends on the header line (the first line):
o If the header line contains a field called "association-type", then all rows will be interpreted as assertions. In that the
remaining header fields (in that order) are interpreted as roles (role types). For all rows in the CSV stream, the position where
the "association-type" field was is ignored. The other fields (in that order) are affiliated with the corresponding roles.
Example:
association-type,location,bio-unit
is-born,gold-coast,rumsti
is-born,vienna,ramsti
Scoping cannot be controlled. Also all players and roles (obviously) are directly interpreted as identifiers. Subject identifiers
and locators are not (yet) implemented.
o If the header line contains a field called "id", then all further rows will be interpreted as topic characteristics, with each
topic on one line. The column position where the "id" field in the header is will be interpreted as toplet identifier.
All further columns will be interpreted according to the following:
o If the header column is named "name", the values will be used as topic names.
o Otherwise if the value looks like a URI, an occurrence with that URI value will be be added to the topic.
o Otherwise an occurrence with a string value will be added to the topic.
Example:
name,id,location,homepage
"Rumsti",rumsti,gold-coast,http://rumsti.com
"Ramsti",ramsti,vienna,http://ramsti.com
serialize
$tm->serialize
[Since TM 1.53] This method serializes a fragment of a topic map into CSV. Which fragment can be controlled with the header line and
options (see constructor).
"header_line" (only for serialization)
This string contains a comma separated list (CSV parseable) of headings. If one of the headings is "association-type", then the
generated CSV content will contain associations only. Nothing else is implemented yet. The other headings control which roles (and
in which order) should be included in the CSV content. If a particular role type has more than one player, then all players are
included.
NOTE: As this is inconsistent, this will have to change.
"type" (only for serialization)
If existing, then this controls which association type is to be taken.
"baseuri" (only for serialization)
If existing and non-zero, the base URI of the map will remain in the identifiers. Otherwise it will be removed.
"specification"
If existing (and when selecting only associations), this specification will be interpreted in the sense of "asserts" (see TM).
Example:
$tm->serialize (header_line => 'association-type,location,bio-unit',
type => 'is-born',
baseuri => 0);
SEE ALSO
TM, TM::Serializable
AUTHOR INFORMATION
Copyright 2010 Robert Barta.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
http://www.perl.com/perl/misc/Artistic.html
perl v5.10.1 2012-06-05 TM::Serializable::CSV(3pm)