character replacement using sed/awk
|
Original Message
|
Name: Rohit
Date: September 11, 2004 at 19:53:44 Pacific
Subject: character replacement using sed/awk OS: UNIX CPU/Ram: 1
|
Comment: We have a tilde delimited file with tilde in the character data also. Character data is always in double quotes. For example
1~23~"abc"~1.1~"xy~x" We need to change the tilde in character data to a dash, as below. 1~23~"abc"~1.1~"xy-x" Can we do this using sed or a combination of sed and awk ? Any help would be appreciated. Thanks!
Report Offensive Message For Removal
|
|
Response Number 1
|
Name: Wolfbone
Date: September 13, 2004 at 05:45:04 Pacific
Subject: character replacement using sed/awk |
Reply: (edit)Heh! - I wouldn't bother sed or awk with this - they might feel insulted, get angry and blow up your computer. Better use tr '~' '-'
Report Offensive Follow Up For Removal
|
|
Response Number 2
|
Name: Wolfbone
Date: September 13, 2004 at 06:00:24 Pacific
Subject: character replacement using sed/awk |
Reply: (edit)Doh! - You meant only the ~ between " and ": sed 's/\(.*".*\)~\(.*\)/\1-\2/' should work.
Report Offensive Follow Up For Removal
|
|
Response Number 3
|
Name: Wolfbone
Date: September 13, 2004 at 06:22:26 Pacific
Subject: character replacement using sed/awk |
Reply: (edit)awk 'BEGIN {FS="\""; OFS="\""}; {for (i=2;i<=NF;i+=2) {sub("~","-",$i)}}; {print}' if there's more than one substitution to be done in each line
Report Offensive Follow Up For Removal
|
|
Response Number 4
|
Name: Rohit
Date: September 13, 2004 at 19:56:35 Pacific
Subject: character replacement using sed/awk
|
Reply: (edit)Thanks Wolfbone! Is "sub" a valid awk command on Unix ? File does have multiple ~ that need to be delimited. Thanks!
Report Offensive Follow Up For Removal
|
|
Response Number 5
|
Name: Wolfbone
Date: September 13, 2004 at 22:16:01 Pacific
Subject: character replacement using sed/awk |
Reply: (edit)Is "sub" valid? - Not sure what you mean but it's not a GNU only extension. "gsub" is standard too, in case you also have more than one '~' in any field.
Report Offensive Follow Up For Removal
|
Use following form to reply to current message: