Help with passing multiple variables into SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with passing multiple variables into SED
# 8  
Old 04-03-2012
I think you're overthinking it a bit. The quotes join things together. If you don't want them joined, don't put them in quotes.

Put your expressions in double quotes.

Code:
sed -e '/./{H;$!d;}' "-e "x;/$string1/!d;" -e "x;/$string2/!d" filename

# 9  
Old 04-05-2012
Thanks Agama
I will re-write the script with what you showed me there and let you know.

---------- Post updated at 05:12 PM ---------- Previous update was at 12:05 PM ----------

Hi I tried the modified script
Code:
#!/usr/bin/env ksh
cd /usr/logs/appserver/
ls -ltr XSLog*

printf "enter filename: "
read filename
printf "enter search string: "
read string1
printf "Another search string [yes|no] "
read ans
if [ "$ans" == "yes" ]
then
    printf "enter 2nd search string: "
    read string2
    p2="-e x;/$string2/!d"
fi

sed -e '/./{H;$!d;}' -e "x;/$string1/!d"  $p2  $filename 

bash-2.05$

but I could not get the second variable to be recognized.
Trying the first variable works but two, it seems to just hang and not print out.
I tried with the ";" before and after the first
Code:
 -e "x;/$string1/!d"

.
sorry to take up your time with this.

---------- Post updated 04-05-12 at 03:27 PM ---------- Previous update was 04-04-12 at 05:12 PM ----------

agama, Corona688 many thanks for your suggestions and help. I managed to get it working. I noticed I had an extra
Code:
 -e "x;/$string2/!d"

on the second string when actually it only required
Code:
  "/$string2/!d"

Code:
 sed -e '/./{H;$!d;}' -e "x;/$string1/!d; $p2" filename

Many thanks again
RegardsSmilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing variables to a sed function

Hi everyone, I've re-written some of our scripts to use more functions and I've run into a situation where passing a variable to a sed function does not work. My function is a one-liner sed command as follows: function StringSub() { sed -i "${1}/${2}/${3}/${4}" ${5} } Where ${1} through... (4 Replies)
Discussion started by: richardsantink
4 Replies

2. Shell Programming and Scripting

ksh passing to awk multiple dyanamic variables awk -v

Using ksh to call a function which has awk script embedded. It parses a long two element list file, filled with text numbers (I want column 2, beginning no sooner than line 45, that's the only known thing) . It's unknown where to start or end the data collection, dynamic variables will be used. ... (1 Reply)
Discussion started by: highnthemnts
1 Replies

3. Shell Programming and Scripting

Variables into SED or AWK and multiple commands

Hello I am hoping you may help. I am not sure how to go about this exactly, I know the tools but not sure how to make them work together. I have two SED commands that I would like to run in a shell script. I would like to take the manual input of a user (types in when prompted) to be used... (4 Replies)
Discussion started by: lostincashe
4 Replies

4. Shell Programming and Scripting

passing variables to sed in ksh

Hi, i need help passing variables to sed using ksh. My goal is to get particular data from log files. first i put a mark to the log files. echo "TEST_"`date + %m_%d_%Y_%T"` >markFile this will produce a 'markFile' which contain text like this TEST_06_01_2009_21:55:09 then i put the mark... (2 Replies)
Discussion started by: d.anggrianto
2 Replies

5. Shell Programming and Scripting

sed pattern matching or passing variables

I need sed to add a "/>" to the end of a line that contains/starts with <meta. current line is <meta name="keywords" content="kayword 1, kwyword2"> and should be <meta name="keywords" content="kayword 1, kwyword2 " /> i need something like this? find . -name "*.html" -print0 | xargs... (6 Replies)
Discussion started by: sky_rivers
6 Replies

6. Shell Programming and Scripting

Passing variables to sed

Hi Folks, How can I make the following to work from a korn shell? old="OLDSTRING" new="NEWSTRING" file="myfile.txt" sed -n 's/$old/$new/gp' $file Thanks in advance rogers42 (3 Replies)
Discussion started by: rogers42
3 Replies

7. Shell Programming and Scripting

passing variables to sed function in a script ....

Hello , I have a script named testscript.sh wherein I have two variables $var and $final (both of which contain a number) I have a sed write function inside this script as follows: sed '1,2 w somefile.txt' fromfile.txt Now , in the above i want to pass $var and $final instead of... (2 Replies)
Discussion started by: shweta_d
2 Replies

8. Shell Programming and Scripting

Help needed in processing multiple variables in a single sed command.

Is it possible to process multiple variables in a single sed command? I have the following ksh with three variables and I want to search for all variables which start with "var" inside input.txt. I tired "$var$" but it just prints out everyting in input.txt and does not work. $ more test.ksh... (5 Replies)
Discussion started by: stevefox
5 Replies

9. Shell Programming and Scripting

passing variables to sed inside script

I am trying to pass a regular expression variable from a simple script to sed to remove entries from a text file e.g. a='aaaa bbbb cccc ...|...:' then executing sed from the script sed s'/"'$a"'//g <$FILE > $FILE"_"1 my output file is always the same as the input file !! any... (5 Replies)
Discussion started by: Daniel234
5 Replies

10. Shell Programming and Scripting

Passing variables to sed

Hi folks, I'm looking for a solution to pass variables to a sed-command. I'm reading a lot of threats and also the q&a "How can I use a variable in sed?". None of these commands works. I'm using AIX 5.2. I want to do the following: NUMBER=` echo 38341` | sed -n '/$NUMBER/p' an obtained... (3 Replies)
Discussion started by: jfisch
3 Replies
Login or Register to Ask a Question