SED GURUS - Help!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SED GURUS - Help!
# 1  
Old 11-03-2006
SED GURUS - Help!

I wish to substituite a string on each line but ONLY if it appears within double-quotes:

this_string="abc#def#geh" # Comment here

I wish to change the "#" characters within the double quoted string to "_":

this_string="abc_def_geh" # Comment here

... but as you see, the "comment" hash is retained.

The substitution cannot check positional placement, only whether it is within quotes.

Any ideas?

Cheers
# 2  
Old 11-03-2006
I could not think of a straight forward approach. Assuming --- does not occur anywhere in the line.

Code:
sed -e "s/\(.*\)#\([^#]*\)/\1---\2/;s/#/_/g;s/---/#/" input.txt

I have changed the last '#' to '---', replaced the other '#' with '_', and reverted back '---' to '#'.

Last edited by vino; 11-03-2006 at 09:28 AM..
# 3  
Old 11-03-2006
Does it have to be strictly sed ?

This awk solution seems to work just ok
Code:
echo 'this_string="abc#def#geh" # Comment here' | awk -F'"' '{ gsub("#","_",$2); print sprintf("%s\"%s\"%s",$1,$2,$3) }'

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Question to gurus with expect

Hi., I need to ask question for expect script. I have prompt like # and very long script (orachk). I added to expect script line set prompt "(%|#|\\\$) $" and insert into it also piece of code ---- expect { timeout { puts "Running..." exp_continue } ... (0 Replies)
Discussion started by: beckss
0 Replies

2. Shell Programming and Scripting

Question to gurus about sed.

Hi Folks. I need change something into file and after all manipulation I need delete only last COMMA into this piece of code -> GROUP 1 ( '/oralog1/ORAPRD/log01a.dbf', '/oralog2/ORAPRD/log01b.dbf' ) SIZE 512M, GROUP 2 ( '/oralog1/ORAPRD/log02a.dbf', ... (12 Replies)
Discussion started by: beckss
12 Replies

3. UNIX for Dummies Questions & Answers

Calling all the awk gurus out there.

Hi all, I just signed up to the forums, although, I have lurked on here for awhile. Anyways, my issue is I am trying to get awk to spit out something I can use without having to spend hours in excel hell haha. So, I used sed to replace the spaces with semicolons and redirected that to a file. ... (6 Replies)
Discussion started by: savigabi
6 Replies

4. Shell Programming and Scripting

Bash script questions for gurus

guys, I need a steer in the right direction for this issue. it would be great if anyone of you can help me out. i have a textfile where i want to swap the lines based on the user input. The textfile is looks like the #file 1 name TB #file 1 ID 1000 # #file for ID1 system1... (3 Replies)
Discussion started by: mayi
3 Replies

5. Shell Programming and Scripting

Unix gurus : how to grep this pattern?

Hello Unix gurus, My log file has entries in below format : ================================================================= 2009-01-19-01.19.24.816169+660 I8635A1158 LEVEL: Error PID : 5873782 TID : 1 PROC : aaaa APPHDL : 0-269 AUTHID : PDBCMPC... (12 Replies)
Discussion started by: Rahulpict
12 Replies

6. Shell Programming and Scripting

VI Editor - question for unix gurus !!

I have created a dummy file -demo.txt On my machine-A (oslevel-5300-08) I can display the file content in HEX format through VI editor using :%!xxd but on other machine-B (oslevel - 5300-06) , I get error as "sh: xxd: not found." machine-A: $ cat demo.txt Hello World ! I can display... (7 Replies)
Discussion started by: Rahulpict
7 Replies

7. Shell Programming and Scripting

Unix/Linux gurus...here is Q 4u

Suppose I have two files 1.txt and 2.txt. My aim is to find (Total execution time/Number of executions) then sort the result as in decreasing order. Can anyone provide me any shell/perl/awk script or a Command to do that in faster way ? 1.txt : =============================== Number of... (4 Replies)
Discussion started by: Rahulpict
4 Replies

8. Shell Programming and Scripting

Hey Perl Gurus

Hey guys im trying to get this if statement to work and i dont know whats wrong. can anybody help? if($author=~/\A+\Z/i)&&(length($author!=0)) { print " $author validation correct" } elsif($author!=~/\A+\Z/i)&&(length($author=0)) { $author='BLANK'; } else { ... (1 Reply)
Discussion started by: neil1983
1 Replies

9. UNIX for Advanced & Expert Users

Any RF unix gurus out there?

I am having a problem here. We are having several problems in regards to hung process's on unix (HPUX box), caused by my RF equipment (Mobile data capture units). these contact the host via a simply telnet session and locks the system? Is it a timeout problem as the timeout is disabled on the host. (5 Replies)
Discussion started by: Subrosa
5 Replies
Login or Register to Ask a Question