Sponsored Content
Top Forums Shell Programming and Scripting Variable in not resolving in sed Post 303000154 by bakunin on Wednesday 5th of July 2017 08:57:53 AM
Old 07-05-2017
Quote:
Originally Posted by Mannu2525;303000147but my variables are not resolving in sed (using bash shell)
Code:
# sed '$!N;/$message1.*\n.*$message2/p;D' testfile2.txt

The reason is that the single quotes into which you put the sed-statement(s) are prventing exactly that (the expansion of variables. Try the following:

Code:
# x="foo"
# echo $x
# echo "$x"
# echo '$x'

You can use variables by "interrupting" the quotes. Suppose the following simple sed-script which replaces "old" with "new" - notice the quotation, by which after the variable expansion a single string is guaranteed:

Code:
# search="old"
# repl="new"
# echo "old old old" | sed 's/'"$search"'/'"$repl"'/g'
new new new

Note, that variables might contain characters which have a meaning for sed. Suppose the variable "search" would contain a slash:

Code:
# search="old/"
# repl="new"
# echo "old/ old/ old/" | sed 's/'"$search"'/'"$repl"'/g'

This would break the sed-statement, because the slash would alter the statement itself. Therefore you need to check carefully what your variables contains before using it as part of a sed-statement.

I hope this helps

bakunin
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

DNS not resolving

I have configured my solaris 9 box to obtain a IP from the DHCP server which is on windows, I have also set up the DNS with domain name and name servers under /etc/resolv.conf I can ping a ip address I just cant seem to ping hostnames, theres probaly something im not doing. I have looked through... (9 Replies)
Discussion started by: Mr Pink
9 Replies

2. UNIX for Dummies Questions & Answers

Need help in resolving Compilation error

state_field state_abvr = { "AL","ALABAMA", "AK","ALASKA", "AZ","ARIZONA", "AR","ARKANSAS", "CA","CALIFORNIA", "CO","COLORADO", "CT","CONNECTICUT", "DE","DELAWARE", "DC","DISTRICT-OF-COLUMBIA", "FL","FLORIDA", "GA","GEORGIA", "HI","HAWAII", "ID","IDAHO", "IL","ILLINOIS",... (1 Reply)
Discussion started by: jagan_kalluri
1 Replies

3. Shell Programming and Scripting

Sed variable substitution when variable constructed of a directory path

Hello, i have another sed question.. I'm trying to do variable substition with sed and i'm running into a problem. my var1 is a string constructed like this: filename1 filerev1 filepath1 my var2 is another string constructed like this: filename2 filerev2 filepath2 when i do... (2 Replies)
Discussion started by: alrinno
2 Replies

4. Shell Programming and Scripting

Insert a line including Variable & Carriage Return / sed command as Variable

I want to instert Category:XXXXX into the 2. line something like this should work, but I have somewhere the wrong sytanx. something with the linebreak goes wrong: sed "2i\\${n}Category:$cat\n" Sample: Titel Blahh Blahh abllk sdhsd sjdhf Blahh Blah Blahh Blahh Should look like... (2 Replies)
Discussion started by: lowmaster
2 Replies

5. Shell Programming and Scripting

Resolving Var to its contents

Hello everyone.... I am trying to dinamically create variable names and do resolution of this vars contents. After that is done I want to use (via a function call) the var and its contents by referring to it via the variable name. I am having a hard time achieving this .... can you help ? ... (5 Replies)
Discussion started by: gio001
5 Replies

6. Shell Programming and Scripting

Expand an environment variable in sed, when the variable contains a slash

I'm trying to make a sed substitution where the substitution pattern is an environment variable to be expanded, but the variable contains a "slash". sed -e 's/<HOME_DIRECTORY>/'$HOME'/'This gives me the following error: sed: -e expression #1, char 21: unknown option to `s'Obviously this is... (2 Replies)
Discussion started by: Ilja
2 Replies

7. Red Hat

How to pass value of pwd as variable in SED to replace variable in a script file

Hi all, Hereby wish to have your advise for below: Main concept is I intend to get current directory of my script file. This script file will be copied to /etc/init.d. A string in this copy will be replaced with current directory value. Below is original script file: ... (6 Replies)
Discussion started by: cielle
6 Replies

8. Shell Programming and Scripting

Resolving the environment variable from a file

Hi, I an having some environment variables exported and the variable name is present in the file. But its not resolving with following commands. Can someone throw some light. db $ grep -v "^#" TD_FWK_NUCLEUS.dbc | grep -v "^$" | xargs -i echo {} wb_bin: ${TD_FWK_NUCLEUS_DBC_WB_BIN_TAG} I... (3 Replies)
Discussion started by: Mohammed Rafi
3 Replies

9. UNIX for Beginners Questions & Answers

Help for resolving Unexpected EOF while assigning value to variable

#!/bin/sh . /opt/ora/oracle/db/tech_st/11.2.3/PROD_proddb.env sqlplus -s "username/password" << EOF no='sqlplus -s username/password<<EOF set heading off set feedback off Select pt.user_concurrent_program_name report_name , OUTFILE_NAME report_path FROm apps.fnd_concurrent_programs_tl... (12 Replies)
Discussion started by: usman_oracle
12 Replies

10. UNIX for Beginners Questions & Answers

Resolving the UNIX path variable

Friends, I trying to get the unix path fro a config file. There are 100 + path variables defined in the master_config.sh. Like this ; app_dir=/project/emp abc_dir=${app_dir}/abc/app abc_common=${abc_dir}/common abc_common_base=${abc_common}/base... (2 Replies)
Discussion started by: arunv123
2 Replies
RBASH(1)						      General Commands Manual							  RBASH(1)

NAME
rbash - restricted bash, see bash(1) RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the follow- ing are disallowed or not performed: o changing directories with cd o setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV o specifying command names containing / o specifying a file name containing a / as an argument to the . builtin command o specifying a filename containing a slash as an argument to the -p option to the hash builtin command o importing function definitions from the shell environment at startup o parsing the value of SHELLOPTS from the shell environment at startup o redirecting output using the >, >|, <>, >&, &>, and >> redirection operators o using the exec builtin command to replace the shell with another command o adding or deleting builtin commands with the -f and -d options to the enable builtin command o using the enable builtin command to enable disabled shell builtins o specifying the -p option to the command builtin command o turning off restricted mode with set +r or set +o restricted. These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed, rbash turns off any restrictions in the shell spawned to execute the script. SEE ALSO
bash(1) GNU Bash-4.0 2004 Apr 20 RBASH(1)
All times are GMT -4. The time now is 10:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy