03-29-2009
sed / awk to concatenate lines until blank line
Sample input (line feed indicated by [LF])
---------------
The red fox jumped [LF]
over the brown fence of the [LF]
red hous [LF]
[LF]
[LF]
[LF]
He then went into the[LF]
orchard[LF]
[LF]
---------------
Desired Output
---------------
The red fox jumped over the brown fence of the red house
[LF]
He then went into the orchard
[LF]
any input on a sed/awk one liner to achieve this would be immensely helpful
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I have 2 pattern of lines (SQL query and Time taken)in a log i need to capture all SQL queries with time taken >20 sec and need to display as one line.
2 lines from log:
2007-10-23 11:39:17,061 DEBUG - SQL Query : SELECT A.GROUP_CD , C.FN_CD FROM UP_GROUP A , PRD_GROUP_TO_FN B , PRD_FN... (1 Reply)
Discussion started by: vithala
1 Replies
2. Shell Programming and Scripting
I have 2 pattern of lines (SQL query and Time taken)in a log i need to capture all SQL queries with time taken >20 sec and need to display as one line.
2 lines from log:
2007-10-23 11:39:17,061 DEBUG - SQL Query : SELECT A.GROUP_CD , C.FN_CD FROM UP_GROUP A , PRD_GROUP_TO_FN B , PRD_FN... (7 Replies)
Discussion started by: vithala
7 Replies
3. Shell Programming and Scripting
hello,
i have tried to remove blank lines from a file using korn shell script file.. it doesn't seem to work!
i tried sed '/^\s*$/d' infile > outfile but that didn't work
i tried sed 's/ *$//;/^$/d' infile > outfile and that didn't work
i tried sed '/^s./d' infile > outfile and that... (6 Replies)
Discussion started by: alrinno
6 Replies
4. UNIX for Advanced & Expert Users
Hi
I am getting a source file where the columns are seperated by comma and double Quotes
Eg1 : "AAA","BBB","CCCC"
in the same source file i am also getting few lines where my last columns double quotes are ending in its next line or the next next line
Eg2: "AAA","BBB","CCC
CC"... (9 Replies)
Discussion started by: laxmi131
9 Replies
5. Shell Programming and Scripting
I've got a log file from automatic diagnostic runs. The log file is appended to each time an automatic log is run.
I'd like to just pull certain lines from each run in the log file, and concatenate them into 1 comma delimited line (for export into excel or an html table).
Each diagnostic run... (3 Replies)
Discussion started by: BecTech
3 Replies
6. Shell Programming and Scripting
I have a file like
blah
blah blah blah
this is the text I need,
which might be between 1-4 lines, but
always has a blank line above and below
it, and is at the end of the text file
the code tags don't show the trailing blank line. I started by deleting the last blank line with:
... (2 Replies)
Discussion started by: unclecameron
2 Replies
7. Shell Programming and Scripting
Sample file:
This is line one,
this is another line,
this is the PRIMARY INDEX line
l ;
This is another line
The command should find the line with “PRIMARY INDEX” and remove the last character from the line preceding it (in this case , comma) and remove the first character from the line... (5 Replies)
Discussion started by: KC_Rules
5 Replies
8. Shell Programming and Scripting
Hi,
Just trying to get to grips with sed and awk for some reporting for work and I need some assistance:
I have a file that lists policy names on the first line and then on the second line whether the policy is active or not.
Policy Name: Policy1
Active: yes
Policy... (8 Replies)
Discussion started by: guinch
8 Replies
9. Shell Programming and Scripting
I have a file that looks like this:
John Smith
http://www.profile1.com
http://www.profile2.com
http://www.profile3.com
Marc Olsen
http://www.profile4.com
http://www.profile5.com
http://www.profile6.com
http://www.profile7.com
Lynne Doe
http://www.profile8.com
http://www.profile9.com... (3 Replies)
Discussion started by: locoroco
3 Replies
10. Shell Programming and Scripting
Dear all
I want to search special string in file and then print next all line in one line until blank lines come. Help me plz for same. My input file and desire op file is as under.
i/p file:
A1/EXT "BSCABD1_21233G1" 757 130823 1157
RADIO X-CEIVER ADMINISTRATION
BTS EXTERNAL FAULT
... (7 Replies)
Discussion started by: jaydeep_sadaria
7 Replies
LEARN ABOUT DEBIAN
text::context::eitherside
Text::Context::EitherSide(3pm) User Contributed Perl Documentation Text::Context::EitherSide(3pm)
NAME
Text::Context::EitherSide - Get n words either side of search keywords
SYNOPSIS
use Text::Context::EitherSide;
my $text = "The quick brown fox jumped over the lazy dog";
my $context = Text::Context::EitherSide->new($text);
$context->as_string("fox") # "... quick brown fox jumped over ..."
$context->as_string("fox", "jumped")
# "... quick brown fox jumped over the ..."
my $context = Text::Context::EitherSide->new($text, context => 1);
# 1 word on either side
$context->as_string("fox", "jumped", "dog");
# "... brown fox jumped over ... lazy dog",
Or, if you don't believe in all this OO rubbish:
use Text::Context::EitherSide qw(get_context);
get_context(1, $text, "fox", "jumped", "dog")
# "... brown fox jumped over ... lazy dog"
DESCRIPTION
Suppose you have a large piece of text - typically, say, a web page or a mail message. And now suppose you've done some kind of full-text
search on that text for a bunch of keywords, and you want to display the context in which you found the keywords inside the body of the
text.
A simple-minded way to do that would be just to get the two words either side of each keyword. But hey, don't be too simple minded, because
you've got to make sure that the list doesn't overlap. If you have
the quick brown fox jumped over the lazy dog
and you extract two words either side of "fox", "jumped" and "dog", you really don't want to end up with
quick brown fox jumped over brown fox jumped over the the lazy dog
so you need a small amount of smarts. This module has a small amount of smarts.
EXPORTABLE
get_context
This is primarily an object-oriented module. If you don't care about that, just import the "get_context" subroutine, and call it like so:
get_context($num_of_words, $text, @words_to_find)
and you'll get back a string with ellipses as in the synopsis. That's all that most people need to know. But if you want to do clever
stuff...
METHODS
new
my $c = Text::Context::EitherSite->new($text [, context=> $n]);
Create a new object storing some text to be searched, plus optionally some information about how many words on either side you want. (If
you don't like the default of 2.)
context
$c->context(5);
Allows you to get and set the number of the words on either side.
as_sparse_list
$c->as_sparse_list(@keywords)
Returns the keywords, plus n words on either side, as a sparse list; the original text is split into an array of words, and non-contextual
elements are replaced with "undef"s. (That's not actually how it works, but conceptually, it's the same.)
as_list
$c->as_list(@keywords)
The same as "as_sparse_list", but single or multiple "undef"s are collapsed into a single ellipsis:
(undef, "foo", undef, undef, undef, "bar")
becomes
("...", "foo", "...", "bar")
as_string
$c->as_string(@keywords)
Takes the "as_list" output above and joins them all together into a string. This is what most people want from "Text::Context::EitherSide".
EXPORT
"get_context" is available as a shortcut for
Text::Context::EitherSide->new($text, context => $n)->as_string(@words);
but needs to be explicitly imported. Nothing is exported by default.
SEE ALSO
Text::Context is an even smarter way of extracting a contextual string.
AUTHOR
Current maintainer: Tony Bowden
Original author: Simon Cozens
BUGS and QUERIES
Please direct all correspondence regarding this module to:
bug-Text-Context-EitherSide@rt.cpan.org
COPYRIGHT AND LICENSE
Copyright 2002-2005 by Kasei Limited, http://www.kasei.com/
You may use and redistribute this module under the terms of the Artistic License 2.0.
http://www.perlfoundation.org/artistic_license_2_0
perl v5.10.0 2009-05-04 Text::Context::EitherSide(3pm)