sed help/wildcard substitution


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed help/wildcard substitution
# 1  
Old 03-28-2008
sed help/wildcard substitution

I need to perform the following substitutions and have been struggling to determine if or how I can do this with sed or perl.

I need to change the string foo(bar) to moo(bar,0) wherever this occurs in a file.

Is there a way to do this? I'm thinking there might be a wildcard of some sort that would do the following:

s/foo(*)/moo(*,0)/g

Thanks!
# 2  
Old 03-28-2008
There is probably more to this than you are saying, but this will do what you are asking for.

Code:
s/foo\(([^()]+)\)/moo(\1,0)/g

Read up on backreferences in regular expressions if this seems somehow magical.

This is Perl s/// syntax; sed wants backslashes in different places. (On the other hand, Perl prefers $1 over \1 on the substitution side. If you "use strict" it will complain about this.)
# 3  
Old 03-28-2008
Perfect era, thank you.

Now having read up on backreferences this makes a lot of sense and gives me ideas on how to do a few other things.
# 4  
Old 03-28-2008
Bug

Quote:
's/foo(\(.*\))/moo(\1,0)/p'
How about this !
# 5  
Old 03-28-2008
If there are multiple occurrences on the same line, it will munch them.

That is, "foo(1); foo(2)" would be replaced with "moo(1); foo(2,0)" whereas you would probably like for it to produce "moo(1,0); moo(2,0)".
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed replace characters using a wildcard

Hello, I have some data that looks like the following, > <SALTDATA> (OVS0199262) HCl > <IDNUMBER> (OVS0199262) OVS0199262 > <SUPPLIER> (OVS0199262) TimTec > <EMAIL> (OVS0199262) info@timtec.net > <WEBSITE> (OVS0199262) http://www.timtec.net I need to remove the data in... (3 Replies)
Discussion started by: LMHmedchem
3 Replies

2. UNIX for Dummies Questions & Answers

Problem with use of the ? wildcard in regex substitution.

I'm trying to use Larry Wall's rename (prename) tool to rename multiple files: $ ls -1 blar.m4mp3 BLAH.mpmp3 bar foo.m4mp3 foo bar.mpmp3 I'm trying to fix the extensions so they're all .mp3: rename 's/m?mp3/mp3/' *mp3 I expect m?mp3 to match the extensions,... (3 Replies)
Discussion started by: ropers
3 Replies

3. Shell Programming and Scripting

sed using wildcard

Hi Folks, I had a requirement to replace a pattern a.*a with 'a' alone. I'm writing a sed command to do that. But I'm not able to work this out. Pls help me. echo 'a123a456a789' | sed 's/a.*a/a/' Expected o/p : a456a789 But actual o/p is a789. :confused: how can write that... (6 Replies)
Discussion started by: poova
6 Replies

4. Shell Programming and Scripting

Sed Wildcard

Hello, I apologize for asking what is probably a simple question but I have been unable to understand the other posts on the topic. I have a file that has the following several lines: ABC DEF GH:IJKLMNOP_QRS_TUV_11112012_ABCL5 ABC DEF GH:IJKLMNOP_QRS_TUV_11112013_ABCL4 ABC DEF... (4 Replies)
Discussion started by: MolecularToast
4 Replies

5. Shell Programming and Scripting

Wildcard use with SED command

Hello, I am fairly new to Linux in general and I am trying to use SED to make some replacements in a file. Below is sample of what the file is like. <Grouping id="024"><Source>ABC</Source><GroupingKey>000000000816</GroupingKey></Grouping><Grouping... (9 Replies)
Discussion started by: runforfun7
9 Replies

6. Shell Programming and Scripting

wildcard in sed substitution

I have a number of strings that I want to remove: <b>Task: 100</b> <b>Task: 1100 </b> <b>Task: 2200 </b> But the numbers in them can vary from 4, 5 8, digits in length. But, no alpha chars. I tried this: sed '/Task:/,//d' $file > tmpfile ; mv tmpfile $file But it removed additional text on... (5 Replies)
Discussion started by: dba_frog
5 Replies

7. Shell Programming and Scripting

sed delete wildcard within a string

Hi I would like to batch delete the "note" entry from bib files. The start would be defined by "note ={" and the end by "}." (see example bib entry below). I tried the following command which does not have any effect: cat input.bib| sed -e 's/note = {.*}.//' > output.bib Any help would... (2 Replies)
Discussion started by: gerggeismann
2 Replies

8. Shell Programming and Scripting

use sed do batch wildcard string replace

Hi, Here is what I want to do I want to search local directory and its sub directory, all the files which contain any string like _12345, then remove this string. String is a combination of _ plus a random integer number. For example, here is one line in a file before <properties... (1 Reply)
Discussion started by: bp5000
1 Replies

9. Shell Programming and Scripting

how to cut string with wildcard (sed)

i got text file and contain.... SKYPE Dec 11 09:26:05 IN=eth0 OUT=eth1 SRC=75.38.161.80 DST=192.168.1.56 PROTO=UDP SPT=30645 DPT=12630 LEN=66 SKYPE Dec 11 09:26:05 IN=eth1 OUT=eth0 SRC=192.168.1.56 DST=118.109.39.86 PROTO=UDP SPT=12630 DPT=15889 LEN=75 SKYPE Dec 11 09:26:05 IN=eth1 OUT=eth0... (2 Replies)
Discussion started by: slackman
2 Replies

10. Shell Programming and Scripting

Single character wildcard for SED

Could someone tell me the single character wildcard for SED? I have the file below: $ more input2 AAA /A/B/C BBB /D/E/F CCC /G/H/I DDD I want to remove all strings which contain forward slashs "/" to get the below: AAA BBB CCC I tried to do it in SED by the command below but I... (8 Replies)
Discussion started by: stevefox
8 Replies
Login or Register to Ask a Question