doing a sed on certain variables


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers doing a sed on certain variables
# 8  
Old 05-20-2005
Tools

Quote:
Originally Posted by seaten
Thanks RishiPahuja,

That make things clear. You might have noticed a new topic I have posted which describes a different solution to this problem.

The reason why is that ID-INTERNAL, will be replaced with 1 but also the comma will be removed and that is wrong. It doesn' necessarily have to be a comma it can be a brackes or plus sign,...


examples:
ID-INTERNAL,
ID-INTERNAL)
ID-INTERNAL+

Any ideas ?

Yes Mr. Seaten.... thts what exactly "-e 's/ID-INTERNAL[^-]/1/g'" is for

this will replace all ID-Internal except if next followin character is other then '-'
# 9  
Old 05-20-2005
Ok,


Take a look at the following sample file which I want to work on:
DELETE FROM TABLE
WHERE ID_INTERNAL = :TABLE.ID-INTERNAL, :ID-INTERNAL-CRAZY + :ID-INTERNAL
:ID-INTERNAL-OPEN
:ID-INTERNAL

with your command I get the following result which is very good, but it removes the comma at :TABLE.ID-INTERNAL, which is not allowed take a look at the output

DELETE FROM TBBETGRP
WHERE ID_INTERNAL = :TBBETGRP.1 :ID-INTERNAL-CRAZY +:1
:ID-INTERNAL-OPEN
:1


Notice the comma is gone, it wouldnt always be a comma it could be a bracket or plus sign ?
# 10  
Old 09-05-2005
Bug

this should be take care for ,+ and bracket well...how to do it one shot of regular expression i am not aware...


sed -e 's/ID-INTERNAL /1 /g' -e 's/ID-INTERNAL,/1,/g' -e 's/ID-INTERNAL(/1(/g' -e 's/ID-INTERNAL+/1+/g' -e 's/ID-INTERNAL$/1/g' $filename

similarly you can add as many different characters you want to keep?

if anyone can help to know wht command to use in order to substitute
soemting like 'ID-INTERNAL[,+( ]' with '1[,+( ]' depending on which character was followed by ID-Internal same character need to be following 1.

rishi
# 11  
Old 09-05-2005
Try...
Code:
$ cat <<EOF | sed -e 's/ID-INTERNAL$/1/g' -e 's/ID-INTERNAL\([^-]\)/1\1/g'
> DELETE FROM TABLE
> WHERE ID_INTERNAL = :TABLE.ID-INTERNAL, :ID-INTERNAL-CRAZY + :ID-INTERNAL
> :ID-INTERNAL-OPEN
> :ID-INTERNAL
> EOF
DELETE FROM TABLE
WHERE ID_INTERNAL = :TABLE.1, :ID-INTERNAL-CRAZY + :1
:ID-INTERNAL-OPEN
:1

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed with variables

Im trying to use sed to print value that matches the value in variable and all lines after that. grep "Something" test.txt | sed -e '/{$variable}/,$b' -e 'd' I cant get it work, if I replace the $variable with the value it contains, it works fine... (10 Replies)
Discussion started by: olkkis
10 Replies

2. Shell Programming and Scripting

Using Variables with SED

All I am trying to produce the following in /etc/ssh/sshd_config, # IPv4 only #ListenAddress 0.0.0.0 # IPv4 & IPv6 ListenAddress :: to # IPv4 only ListenAddress <user-entry> ListenAddress <user-entry> # IPv4 & IPv6 #ListenAddress :: The number of user entries can vary. ... (1 Reply)
Discussion started by: miyoung999
1 Replies

3. Shell Programming and Scripting

variables and sed

Is it possible to place a variable in a sed command as such? sed 's/ret_Priv()/$var/' <filename> I am doing this under Bourne. (5 Replies)
Discussion started by: plslakewood
5 Replies

4. UNIX for Dummies Questions & Answers

sed using variables

Hi, I am able to use sed if I hardcode the find and replace values in a shell script. This works: sed -e 's/123v/4567/g' /path/aaa.txt > /path/aaa.txt.tmp If I use a variable, I am not able to use sed command. why? This doesnot work: i=abc j=bk${i} sed -e 's/${i}/${j}/g'... (5 Replies)
Discussion started by: new_learner
5 Replies

5. Shell Programming and Scripting

using variables with sed

I'm trying to get sed to cut and replace using variables, but it doesnt seem to work, when I run this the mod time of the file does get updated. Is my syntax incorrect in the sed command? Thanks #!/usr/bin/ksh #Modify header set -x HEAD=$(cat PBN2CPR1.TXT | awk 'BEGIN { FS = ","... (1 Reply)
Discussion started by: ddurden7
1 Replies

6. Shell Programming and Scripting

Sed variables

HELP!!! I'm keep getting "sed: Function s/PETS/dog cannot be parsed." I have 2 files that list... # cat FILE1.txt dog cat mouse # cat FILE2.txt my pets are PETS I put this into a variable... # A=`cat FILE1.txt` # sed "s/PETS/$A" FILE2.txt > FILE3.txt (5 Replies)
Discussion started by: Zenwork
5 Replies

7. Shell Programming and Scripting

Using sed with variables (again!)

Hi, I'm trying to use sed to delete the last three lines of a file. I currently have: # get the amount of lines in the file foldernum=`wc -l File_In.txt | cut -c1-8` # remove the lines in the file sed "${foldernum}-3,${foldernum}d" File_In.txt > File_Out.txt I get the error - sed:... (5 Replies)
Discussion started by: Mr_Plow
5 Replies

8. Shell Programming and Scripting

variables in sed

when i do something like substituting a particular thing with a system variable, i am unable to do that expect the varible name getting into that. for ex.. i tried, sed -e 's/date/`date`/g' <if >of but i got date replaced with "`date`" and not with the actual date .. same case happened... (5 Replies)
Discussion started by: sskb
5 Replies

9. Shell Programming and Scripting

doing a sed with variables

Hi, I'm trying to do the following , I have certain variables in a file and then I want to check for these variables in a certain cobol file to see if they contain a certain package if so replace them with value 1 but but that last line is giving problems: # for each variable in SQL file ... (1 Reply)
Discussion started by: seaten
1 Replies

10. UNIX for Dummies Questions & Answers

doing a sed with variables

Hi, I'm trying to do the following , I have certain variables in a file and then I want to check for these variables in a certain cobol file to see if they contain a certain package if so replace them with value 1 but but that last line is giving problems: # for each variable in SQL file ... (1 Reply)
Discussion started by: seaten
1 Replies
Login or Register to Ask a Question