sed / awk to concatenate lines until blank line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed / awk to concatenate lines until blank line
# 8  
Old 03-30-2009
Also the data for each field would be split across multiple lines. So your solution of print;getline; won't work. There is no way of knowing how many lines the data would span.
# 9  
Old 03-30-2009
Hammer & Screwdriver How about this?

Code:
> cat file5
The red fox jumped
over the crazy lazy dog
at the red house


and then he went
to eat, at
Gramma's house he went

to eat
and eat
and eat some more

> cat file5 | awk '{if ($0!=""){lin=lin" "$0}else{if(lin!=""){print lin};lin=""}}'
 The red fox jumped over the crazy lazy dog at the red house
 and then he went to eat, at Gramma's house he went
 to eat and eat and eat some more

# 10  
Old 03-30-2009
Quote:
Originally Posted by dunstonrocks
2> Now I have file in the following format (delimiter indicated by DL, Line Feed by LF)

What is DL?

And there's no need to use "LF"; it's just confusing. The linefeed is already there.
# 11  
Old 03-30-2009
Quote:
Originally Posted by dunstonrocks
I am also trying to achieve this output, but I have failed with various sed solutions that I have tried.
-------------------------
SAMPLE INPUT
-------------------------
Name: ABCD
Address: ABCD Road, ABCD City, ABCD State
ZipCode: 0000
Telno: 999-999-9999

Name: EFGH
Address Temp Road, Temp City, Temp State
Telno 999-999-9999

----------------------
EXPECTED OUTPUT
----------------------

Name: ABCD
Address: ABCD Road, ABCD City, ABCD State
ZipCode: 0000
Telno: 999-999-9999

Name: EFGH
Address Temp Road, Temp City, Temp State
ZipCode: <--- This is the new entry
Telno 999-999-9999

Basically, the requirement is to insert a word between two words if the word does not already exist.

Code:
awk '/^Telno/ && last !~ /^ZipCode/ { print "ZipCode:" }
    { print; last = $0 }'

# 12  
Old 03-31-2009
then below should be ok for you
Code:
undef $/;
open $fh,"<","a.spl" or die "Can not open file";
$str=<$fh>;
my @arr=split(/\[DL\]/,$str);
map {my $tmp=$_; $tmp=~s/\n/ /g; print "\n[DL]\n",$tmp if $tmp ne ""} @arr;

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

String search and print next all lines in one line until blank line

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

2. Shell Programming and Scripting

Awk, sed - concatenate lines starting with string

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

3. Shell Programming and Scripting

awk or sed - Convert 2 lines to 1 line

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

4. Shell Programming and Scripting

sed or awk delete character in the lines before and after the matching line

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

5. Shell Programming and Scripting

sed show lines text between 2 blank lines

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

6. Shell Programming and Scripting

Logfile - extracting certain lines to concatenate into 1 line

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

7. UNIX for Advanced & Expert Users

need to concatenate two lines if the line doesnt end with quotes

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

8. Shell Programming and Scripting

sed and blank lines

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

9. Shell Programming and Scripting

concatenate and display 2 lines as 1 with a condition for 2 line ?

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

10. UNIX for Advanced & Expert Users

Need solution concatenate and display 2 lines as 1 with a condition for 2 line ?

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
Login or Register to Ask a Question