Join lines in a file????


 
Thread Tools Search this Thread
# 1  
Linux Join lines in a file????

Hello UNIX gurus, I am new to the world of UNIX. Hopefully I am submitting my question at the right forum. Here is my dilemma -

I have a file with contents like this -
"line1","Hello","World","Today is a wonderful day","yes it is"
"line2","Hello","World","Today is a
beautiful day","oh yeah"
"line3","Hello","World","Today is a great
day","right you are"
"line4","Hello","World","Today is really an awesome day","you can say that again"

you may have observed that some of the records do not appear in a single line. For example line2 and line3 have broken off and a part of them is in a different line. I am desperately looking for a way to join these broken records so that I can have them in a single line. Is there a command I can use which will read the records in a file, then correct the broken lines and then create a file with proper records? I hope this is possible. Please help.
# 2  
Assuming all lines should end with a double quote "
Code:
awk '/\"$/{ORS=RS}!/\"$/{ORS=FS}1' file

# 3  
Thanks for the reply Yoda! But I'm a young apprentice. Could you please explain the command also.
# 4  
Code:
awk '
        /\"$/ {                 # Check if record end $ with double quotes "
                ORS = RS        # If yes, set Output Record Separator to Input Record Separator, by default a newline.
        }

        !/\"$/ {                # Check if record does not ! end $ with double quotes "
                ORS = FS        # If yes, set Output Record Separator to Input Field Separator, by default a space.
        }

        {
                print $0        # Print current record.
        }
' file

Note that ORSRSFS are awk built-in variables. Check man pages for more information:
Code:
man awk

# 5  
Would /"$/ work the same as /\"$/ RE? Seems to work when I tested. No big deal. Just wondering if any difference.
# 6  
Quote:
Originally Posted by hanson44
Would /"$/ work the same as /\"$/ RE? Seems to work when I tested. No big deal. Just wondering if any difference.
You are right. Escaping double quote is not necessary. Smilie
# 7  
I tried the follwing command but didn't work-
awk '/\"$/{ORS=RS}!/\"$/{ORS=FS}1' good_day.txt > good_day_1.txt

What I got was, except for the first line, all the lines now have space in front of them

good_day.txt =
"line1","Hello","World","Today is a wonderful day","yes it is"
"line2","Hello","World","Today is a
beautiful day","oh yeah"
"line3","Hello","World","Today is a great
day","right you are"
"line4","Hello","World","Today is really an awesome day","you can say that again"

good_day_1.txt =
"line1","Hello","World","Today is a wonderful day","yes it is"
"line2","Hello","World","Today is a
beautiful day","oh yeah"
"line3","Hello","World","Today is a great
day","right you are"
"line4","Hello","World","Today is really an awesome day","you can say that again"

What am I missing?

I want good_day_1 to appear like this -
"line1","Hello","World","Today is a wonderful day","yes it is"
"line2","Hello","World","Today is a beautiful day","oh yeah"
"line3","Hello","World","Today is a great day","right you are"
"line4","Hello","World","Today is really an awesome day","you can say that again"
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help to join separate lines in a single one from xml file

Hi all, I need help to parse this xml file that has paragraphs broken in different lines and I would like to join in a single line. I hope you can understand my explanation. Thanks for any help/direction. The script could be in bash, awk, ruby, perl whatever please In the output I want:... (8 Replies)
Discussion started by: Ophiuchus
8 Replies

2. Shell Programming and Scripting

Join Lines every paragraph in a file.txt

Hi all, Is there any idea on how to automate convert the paragraph in one line in a file, this will happen after OCR the documents, OCR split every paragraph. I need to join all the paragraph in one line. #cat file.txtThe Commission on Higher Education (CHED) was created through Republic Act... (7 Replies)
Discussion started by: lxdorney
7 Replies

3. Shell Programming and Scripting

Join multiple lines from text file

Hi Guys, Could you please advise how to join multiple details lines into single row, with HEADER 1 as the record separator and comma(,) as the field separator. Input: HEADER 1, HEADER 2, HEADER 3, 11,22,33, COLUMN1,COLUMN2,COLUMN3, AA1, BB1, CC1, END: ABC HEADER 1, HEADER 2,... (3 Replies)
Discussion started by: budz26
3 Replies

4. Shell Programming and Scripting

join lines in file

I have a file like this: --------------------------------------------------------------- 26 00:04:48,440 --> 00:04:51,440 I don't know why he can't just do the Great Apache Flaming Arrow Act. 27 00:04:52,440 --> 00:04:54,839 Didn't you tell him to use the gopher snake? 28... (1 Reply)
Discussion started by: thailand
1 Replies

5. Shell Programming and Scripting

join based on line number when one file is missing lines

I have a file that contains 87 lines, each with a set of coordinates (x & y). This file looks like: 1 200.3 -0.3 2 201.7 -0.32 ... 87 200.2 -0.314 I have another file which contains data that was taken at certain of these 87 positions. i.e.: 37 125 42 175 86 142 where the first... (1 Reply)
Discussion started by: jackiev
1 Replies

6. Shell Programming and Scripting

how do i join two lines from a input file

HI all, i have a input file,i have to join 2nd line into firstline and 4th line into 2nd line and so on.. for this we also consider odd no. of line.It's operate on original input file but output file should temp file. like .. filename=cdr.cfg line1 line2 line3 line4Desired output should be... (9 Replies)
Discussion started by: suryanarayan
9 Replies

7. Shell Programming and Scripting

Remove ":" and join lines in outline file

I have a vim outliner file like this: Title title 2 :Testing now :testing 2 :testing 3 title 3 :testing :ttt :ttg Is there a way to use a script or command to remove... (7 Replies)
Discussion started by: jostber
7 Replies

8. Shell Programming and Scripting

How to get awk to edit in place and join all lines in text file

Hi, I lack the utter fundamentals on how to craft an awk script. I have hundreds of text files that were mangled by .doc format so all the lines are broken up so I need to join all of the lines of text into a single line. Normally I use vim command "ggVGJ" to join all lines but with so many... (3 Replies)
Discussion started by: n00ti
3 Replies

9. Shell Programming and Scripting

join 2 lines

hi all i have sample and i need script to do this /dev/xxx oracle test /dev/sap 9999 000 88 99 i need the out put like this /dev/xxx oracle test /dev/sap 9999 000 88 99 can any one provide me with an idea to solve this problem (8 Replies)
Discussion started by: maxim42
8 Replies

10. Shell Programming and Scripting

join on a file with multiple lines, fields

I've looked at the join command which is able to perform what I need on two rows with a common field, however if I have more than two rows I need to join all of them. Thus I have one file with multiple rows to be joined on an index number: 1 randomtext1 2 rtext2 2 rtext3 3 rtext4 3 rtext5... (5 Replies)
Discussion started by: crimper
5 Replies

Featured Tech Videos