Wildcard use with SED command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Wildcard use with SED command
# 8  
Old 10-11-2011
That Did It!!!

Quote:
Originally Posted by Shell_Life
See if this works for you:
Code:
sed 's#\(...</GroupingKey>\)#1\1#g' File

That did it!!!

The last few lines it did cause the below result, but it was just for 904 records out of 8654 and only the one number so I was able to correct that. I did not see anything in the source file that looked different for that one.

<GroupingKey>0000000007184 </GroupingKey>

Thank You! Smilie
# 9  
Old 10-11-2011
Quote:
Originally Posted by runforfun7
That did it!!!

The last few lines it did cause the below result, but it was just for 904 records out of 8654 and only the one number so I was able to correct that. I did not see anything in the source file that looked different for that one.

<GroupingKey>0000000007184 </GroupingKey>

Thank You! Smilie
This is because you have four numbers preceding </GroupingKey> - Shell_Life's solution assumes three characters (3 dots).
Try my improved solution:
Code:
sed 's#[^0][^0]*</GroupingKey>#1&#g' myFile

# 10  
Old 10-11-2011
Also Worked with a little interesting twist

Quote:
Originally Posted by vgersh99
That's a bit better:
Code:
nawk -F '(<GroupingKey>|</GroupingKey>)' '{for(i=2;i<=NF; i+=2) {sub("[1-9][1-9]*$","1&", $i);$i="<GroupingKey>"$i"</GroupingKey>"}}1'  myFile

Improving on ShellLife's good idea:
Code:
sed 's#[^0][^0]*</GroupingKey>#1&#g' myFile


That also worked, but like with the other example it had some records that were modified in a slightly odd way.

><GroupingKey>0000000001852</GroupingKey></Grouping><Grouping id="317"><Source>ABC</Source><GroupingKey>0000000008011</GroupingKey></

Thank You and Shell_Life both for you help!
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 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

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

4. UNIX for Dummies Questions & Answers

sed non-greedy pattern matching with wildcard

Toby> cat sample1 This is some arbitrary text before var1, This IS SOME DIFFERENT ARBITRARY TEXT before var2 Toby> sed -e 's/^This .* before //' -e 's/This .* before //' sample1 var2 I need to convert the above text in sample1 so that the output becomes var1, var2 by... (2 Replies)
Discussion started by: TobyNorris
2 Replies

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

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

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

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