join two lines when the second line contains "US DOLLAR"


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting join two lines when the second line contains "US DOLLAR"
# 1  
Old 10-19-2005
join two lines when the second line contains "US DOLLAR"

I want to join two lines together when the second line contains "US DOLLAR".
How to do that with sed?

Original file:
# cat testdata
Sep. 24, 2005 Sep. 26, 2005 PHARMA PLUS DRUGMART 1149 $5.85
Sep. 25, 2005 Sep. 27, 2005 99 RESTAURANT #015
$11.00 US DOLLAR @ 1.203636 $13.24
Sep. 25, 2005 Sep. 26, 2005 ROYAL TREASURE RESTAURANT $91.66


$ od -c testdata
0000000 S e p . 2 4 , 2 0 0 5 S
0000020 e p . 2 6 , 2 0 0 5 P H
0000040 A R M A P L U S D R U G M A
0000060 R T 1 1 4 9 $ 5 . 8 5
0000100 \n S e p . 2 5 , 2 0 0 5
0000120 S e p . 2 7 , 2 0 0 5
0000140 9 9 R E S T A U R A N T # 0
0000160 1 5 \n $ 1 1 . 0 0 U S D O
0000200 L L A R @ 1 . 2 0 3 6 3 6
0000220 $ 1 3 . 2 4 \n S e p .
0000240 2 5 , 2 0 0 5 S e p . 2
0000260 6 , 2 0 0 5 R O Y A L T
0000300 R E A S U R E R E S T A U R A
0000320 N T $ 9 1 . 6 6 \n \n
0000337

Result:
Sep. 24, 2005 Sep. 26, 2005 PHARMA PLUS DRUGMART 1149 $5.85
Sep. 25, 2005 Sep. 27, 2005 99 RESTAURANT #015 $11.00 US DOLLAR @ 1.203636 $13.24
Sep. 25, 2005 Sep. 26, 2005 ROYAL TREASURE RESTAURANT $91.66
# 2  
Old 10-20-2005
Using awk...
Code:
awk '{printf (NR==1||/US DOLLAR/?"":ORS) $0}END{printf ORS}' testdata

# 3  
Old 10-21-2005
It works.
Thank you.

Quote:
Originally Posted by Ygor
Using awk...
Code:
awk '{printf (NR==1||/US DOLLAR/?"":ORS) $0}END{printf ORS}' testdata

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Join, merge, fill NULL the void columns of multiples files like sql "LEFT JOIN" by using awk

Hello, This post is already here but want to do this with another way Merge multiples files with multiples duplicates keys by filling "NULL" the void columns for anothers joinning files file1.csv: 1|abc 1|def 2|ghi 2|jkl 3|mno 3|pqr file2.csv: 1|123|jojo 1|NULL|bibi... (2 Replies)
Discussion started by: yjacknewton
2 Replies

2. Shell Programming and Scripting

Failure: if grep "$Var" "$line" inside while read line loop

Hi everybody, I am new at Unix/Bourne shell scripting and with my youngest experiences, I will not become very old with it :o My code: #!/bin/sh set -e set -u export IFS= optl="Optl" LOCSTORCLI="/opt/lsi/storcli/storcli" ($LOCSTORCLI /c0 /vall show | grep RAID | cut -d " "... (5 Replies)
Discussion started by: Subsonic66
5 Replies

3. Shell Programming and Scripting

Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml"

Dear Ladies & Gents, I have a requirement to delete all the log files in /var/log/test directory that are older than 10 days and their first line begin with "MSH" or "<?xml" or "FHS". I've put together the following BASH script, but it's erroring out: for filename in $(find /var/log/test... (2 Replies)
Discussion started by: Hiroshi
2 Replies

4. Shell Programming and Scripting

Find lines with "A" then change "E" to "X" same line

I have a bunch of random character lines like ABCEDFG. I want to find all lines with "A" and then change any "E" to "X" in the same line. ALL lines with "A" will have an "X" somewhere in it. I have tried sed awk and vi editor. I get close, not quite there. I know someone has already solved this... (10 Replies)
Discussion started by: nightwatchrenba
10 Replies

5. UNIX for Dummies Questions & Answers

how to join two files using "Join" command with one common field in this problem?

file1: Toronto:12439755:1076359:July 1, 1867:6 Quebec City:7560592:1542056:July 1, 1867:5 Halifax:938134:55284:July 1, 1867:4 Fredericton:751400:72908:July 1, 1867:3 Winnipeg:1170300:647797:July 15, 1870:7 Victoria:4168123:944735:July 20, 1871:10 Charlottetown:137900:5660:July 1, 1873:2... (2 Replies)
Discussion started by: mindfreak
2 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 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

"Join" or "Merge" more than 2 files into single output based on common key (column)

Hi All, I have working (Perl) code to combine 2 input files into a single output file using the join function that works to a point, but has the following limitations: 1. I am restrained to 2 input files only. 2. Only the "matched" fields are written out to the "matched" output file and... (1 Reply)
Discussion started by: Katabatic
1 Replies

9. UNIX for Dummies Questions & Answers

Display all the lines that contain "Straw" followed somewhere in the line by Hat?

how do i use this in a grep pattern, the output is inventory (3 Replies)
Discussion started by: 3dd1e
3 Replies

10. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question