merging two lines in a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers merging two lines in a file
# 1  
Old 07-11-2007
merging two lines in a file

Hi All,

I want to merge two lines in a file till the end of the file. So what could be the command to get so.

say file name : sample.txt
contents:
country=1
send apps =1 rece=2
country=2
send apps =3 rece=3
..

...


output:
country=1;send apps =1 rece=2
country=2;send apps =3 rece=3

thanks
Kumar
# 2  
Old 07-11-2007
Here is one way.
Code:
while read line
do
  OUT=${line}
  read line
  OUT=${OUT};${line}
  echo ${OUT} >> output.txt
done <input.txt

# 3  
Old 07-11-2007
Bug

Code:
awk 'ORS=NR%2?";":"\n"' sample.txt
This User Gave Thanks to hemangjani For This Post:
# 4  
Old 07-11-2007
Quote:
Originally Posted by hemangjani
Code:
awk 'ORS=NR%2?";":"\n"' sample.txt
Could explain the awk line.

I'm so confused on awk and sed. Is there a good tutorial that explains what all that gibberish means?
# 5  
Old 07-11-2007
Vino,
The line:
Code:
OUT=${OUT};${line}

Should be replaced by:
Code:
OUT=${OUT}${line}

Hemangjani,
If the input file has an odd number of records, your output does not produce
a line break for the last record.

Here is another way:
Code:
typeset -i mLineCnt=0
mOutLine=''
while read mLine
do
  mLineCnt=${mLineCnt}+1
  mOutLine=${mOutLine}${mLine}
  if [ ${mLineCnt} -eq 2 ]; then
    echo ${mOutLine}
    mOutLine=''
    mLineCnt=0
  fi
done < input_file
if [ ${mLineCnt} -ne 0 ]; then
  echo ${mOutLine}
fi

# 6  
Old 07-11-2007
Quote:
Originally Posted by Shell_Life
Vino,
The line:
Code:
OUT=${OUT};${line}

Should be replaced by:
Code:
OUT=${OUT}${line}

And where do I introduce the ; as shown in the expected output

country=1;send apps =1 rece=2
country=2;send apps =3 rece=3

I should have double quoted the RHS of OUT=${OUT};${line}
# 7  
Old 07-11-2007
You are correct, Vino, it should be single or double quoted:
Code:
OUT=${OUT}';'${line}

Since the requirement asked for a semi-colon, mine should have it:
Code:
mOutLine=${mOutLine}';'${mLine}

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Merging multiple lines to columns with awk, while inserting commas for missing lines

Hello all, I have a large csv file where there are four types of rows I need to merge into one row per person, where there is a column for each possible code / type of row, even if that code/row isn't there for that person. In the csv, a person may be listed from one to four times... (9 Replies)
Discussion started by: RalphNY
9 Replies

2. Shell Programming and Scripting

Merging the lines of a file

Hello, I have a file with few lines starting with a digit (1-5 only ) followed by a dot (.). Remaining all the lines to be merged with its previous numbered lines. Merging must be done with a space. E.g., Source file: 3. abc def xyz 5. pqr mno def 4. jkl uvw 7. ghi 1. abc xyz 6. mno... (4 Replies)
Discussion started by: magnus29
4 Replies

3. Shell Programming and Scripting

Merging multiple files using lines from one file

I have been working of this script for a very long time and I have searched the internet for direction but I am stuck here. I have about 3000 files with two columns each. The length of each file is 50000. Each of these files is named this way b.4, b.5, b.6, b.7, b.8, b.9, b.10, b.11, b.12... (10 Replies)
Discussion started by: iconig
10 Replies

4. Shell Programming and Scripting

Merging lines

Thanks it worked for me. I have one more question on top of that. We had few records which were splitted in 2 lines instead of one. Now i identified those lines. The file is too big to open via vi and edit it. How can i do it without opening the file. Suppose, I want line number 1001 & 1002 to... (2 Replies)
Discussion started by: Gangadhar Reddy
2 Replies

5. Shell Programming and Scripting

merging two .txt files by alternating x lines from file 1 and y lines from file2

Hi everyone, I have two files (A and B) and want to combine them to one by always taking 10 rows from file A and subsequently 6 lines from file B. This process shall be repeated 40 times (file A = 400 lines; file B = 240 lines). Does anybody have an idea how to do that using perl, awk or sed?... (6 Replies)
Discussion started by: ink_LE
6 Replies

6. Shell Programming and Scripting

merging of 2 consecutive lines in a file for a specific pattern

Hi , I'm looking for a way to merge two lines only for a given pattern / condition. Input : abcd/dad + -49.201 2.09 -49.5 34 ewrew rewtre * fdsgfds/dsgf/sdfdsfasdd + -4.30 0.62 -49.5 45 sdfdsf cvbbv * sdfds/retret/asdsaddsa + ... (1 Reply)
Discussion started by: novice_man
1 Replies

7. Shell Programming and Scripting

Merging lines in a text file

hi, I have a file as below: Name: some_name Date: some_date Function Name: <some_function_name(jjjjjjjjj, fjddddd, gggg, ggg)> Changes:<Change A more of change A> Name: some_name Date: some_date Function Name: some_function_nameB(jjjjjjjjj, fjddddd, gggg, ggg) Changes:Change B... (15 Replies)
Discussion started by: flamingo_l
15 Replies

8. Shell Programming and Scripting

Merging lines in a file

Hi, I want to merge the lines starting with a comma symbol with the previous line of the file. Input : cat file.txt name1,name2 ,name3,name4 emp1,emp2,emp3 ,emp4 ,emp5 user1,user2 ,user3 Output name1,name2,name3,name4 emp1,emp2,emp3,emp4,emp5 (9 Replies)
Discussion started by: mohan_tuty
9 Replies

9. Shell Programming and Scripting

Merging lines based on occurances of a particular character in a file

Hi, Is there any way to merge two lines based on specific occurance of a character in a file. I am having a flat file which contains multiple records. Each row in the file should contain specified number of delimiter. For a particular row , if the delimiter count is not matched with... (2 Replies)
Discussion started by: mohan_tuty
2 Replies

10. Shell Programming and Scripting

Urgent Need Help! Merging lines in .txt file

I need to write a script that reads through an input .txt file and replaces the end value with the end value of the next line for lines that have distance <=4000. The first label line is not actually in the input. In the below example, 3217 is the distance from the end of the first line to the... (12 Replies)
Discussion started by: awknerd
12 Replies
Login or Register to Ask a Question