sed using wildcard


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed using wildcard
# 1  
Old 11-22-2012
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.

Code:
echo 'a123a456a789' | sed 's/a.*a/a/'

Expected o/p : a456a789
But actual o/p is a789. Smilie

how can write that search pattern in sed to replace the first occurance alone.?

Thanks,
Poova.

Last edited by Scrutinizer; 11-25-2012 at 08:46 AM.. Reason: code tags
# 2  
Old 11-22-2012
Code:
echo 'a123a456a789' | sed 's/a[^a]*a/a/'

# 3  
Old 11-22-2012
And if that value is in a variable and you are using ksh93/bash (run shopt -s extglob in bash, first):
Code:
var=a123a456a789
echo ${var/a*([!a])a/a}
a456a789

# 4  
Old 11-25-2012
Any shell:
Code:
var=a123a456a789

echo "a${var#a*a}"

# 5  
Old 11-25-2012
With awk
Code:
echo 'a123a456a789' | awk '{ sub(/a[0-9]+a/,"a");print}'
a456a789

# 6  
Old 11-26-2012
Quote:
Originally Posted by Scrutinizer
Any shell:
Code:
var=a123a456a789

echo "a${var#a*a}"

That will work in any shell but will give undesired results if shortest match for the pattern a*a is not found in the variable value.
# 7  
Old 11-26-2012
Quote:
Originally Posted by Scrutinizer
Any shell:
Code:
var=a123a456a789

echo "a${var#a*a}"

This is true for any shell that supports the variable expansions specified by the POSIX standards and the Single UNIX Specifications for a variable that contains at least two "a" characters. The C shell (csh) and related shells usually do not support ${varOPpattern} expansions where OP is #, ##, %, or %%.
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. 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

3. 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

4. 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

5. 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

6. Shell Programming and Scripting

sed to delete lines from a file by using wildcard

I have a text file with tons of data and I want to remove all lines which are have "240" regardless of ABC or BCD and shouldnt delete anything else ABC_10_00024045.zip blah blah ABC_10_00024045.zip.new ABC_10_00024046.zip blah blah ABC_10_00024046.zip.new ABC_10_00024446.zip blah blah... (3 Replies)
Discussion started by: gubbu
3 Replies

7. 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

8. 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

9. Shell Programming and Scripting

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... (4 Replies)
Discussion started by: Mike@NZ
4 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