09-27-2007
Env Variable substituion in Sed (-s option)
Folks,
I've been trying to use the ENV variable with slashes(/) in its value inside the sed substitution..
Sed 's/myval/'$MYVAL'/' file1 >> file.tmp
If MYVAL=<sometext>, it works.
if MYVAL=/home/venkat, it doesnt.
***************************
bash-2.05$ export VAL=/home/venkat
bash-2.05$ sed 's/myval/'$VAL'/' file1
sed: command garbled: s/myval//home/venkat/
bash-2.05$
*****************************
I know that we generally escape the / using \, but here the value being substitued during run-time.
Could some1 throw some light on it.
Thx 4 ur time.
--Venkat.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I want to set a bash env variable which has @ in its name, for example, @YOGESH@
may i know how do i do this? (4 Replies)
Discussion started by: Yogesh Sawant
4 Replies
2. UNIX for Dummies Questions & Answers
Could you please tell me, which process / file is responsible for the setting of PWD env variable in Solaris
Thanks (1 Reply)
Discussion started by: chaandana
1 Replies
3. UNIX for Dummies Questions & Answers
Hi,
I have a doubt on Environment variable.
I want to know where and when the envirnment variables are defined?
Thanks & Regards,
Siba (1 Reply)
Discussion started by: siba.s.nayak
1 Replies
4. Shell Programming and Scripting
Question 1: If I set ENV=$HOME/myenvprofile.ksh, will my script get executed when ever I login to my with KSH. My doubt is we used to put this in .profile of our home directory. SO when ever I login will it executed?
QUestion 2: If I set ENV=`echo "hi"` or 'echo "hi" ', what would be the output.... (0 Replies)
Discussion started by: ramkrix
0 Replies
5. Shell Programming and Scripting
I have 2 scripts t2.sh calls t1.sh. I need to get the vaule of a env variable from t1.sh
/tmp/test$ cat t1.sh
#!/bin/sh
INSTANCE="font/fc-cache"
export INSTANCE
svcadm disable ${INSTANCE}
/tmp/test$ cat t2.sh
#!/bin/sh
. /tmp/test/t1.sh
echo ${INSTANCE}
The above works... (9 Replies)
Discussion started by: honglus
9 Replies
6. Shell Programming and Scripting
Hello,
I want to cange env variable on SunOS.
I tried:
export GONGA=$GONGA:/users/BANK1/basic/queues/SARON_SPACE1
it changed it only localy for my session.
when i opened a new session (telnet etc') the old value exist.
How can I change it to effact all sessions.
Thanks. (2 Replies)
Discussion started by: LiorAmitai
2 Replies
7. Solaris
Hi,
Am installing SAP on Solaris 10. How to set env variables permanently?
Reg (0 Replies)
Discussion started by: daggupati453
0 Replies
8. Web Development
(Above from Apache docs).
On my system, using:
SetEnvIf User-Agent Mozilla IsBad=1
Order allow,deny
Allow from all
Deny from env=IsBad ...I see that environment variable is set (using phpinfo()) but the page is still served. No errors in the Apache logs. (1 Reply)
Discussion started by: gnurob
1 Replies
9. Shell Programming and Scripting
Hi All,
I have a requirement where I have a config file, which contains 2 coulmn.values of first column are environmnet variable, whose value is defined in an environment file.
In my script I need to read the config file, and get the value of the config file variable from env file.
I... (2 Replies)
Discussion started by: alok2082
2 Replies
10. Shell Programming and Scripting
I have a file with 20 blank spaces.
I want to substitute each blank space for a string, and part of that string should include an incremental number
Code
while read line3
do
awk -v var=${line3} '{i=var; sub("^]*$", "\\&\n@target G0.S"'$i'"\n@type xy"); print $0}'... (1 Reply)
Discussion started by: chrisjorg
1 Replies
Env(3pm) Perl Programmers Reference Guide Env(3pm)
NAME
Env - perl module that imports environment variables as scalars or arrays
SYNOPSIS
use Env;
use Env qw(PATH HOME TERM);
use Env qw($SHELL @LD_LIBRARY_PATH);
DESCRIPTION
Perl maintains environment variables in a special hash named %ENV. For when this access method is inconvenient, the Perl module "Env"
allows environment variables to be treated as scalar or array variables.
The "Env::import()" function ties environment variables with suitable names to global Perl variables with the same names. By default it
ties all existing environment variables ("keys %ENV") to scalars. If the "import" function receives arguments, it takes them to be a list
of variables to tie; it's okay if they don't yet exist. The scalar type prefix '$' is inferred for any element of this list not prefixed by
'$' or '@'. Arrays are implemented in terms of "split" and "join", using $Config::Config{path_sep} as the delimiter.
After an environment variable is tied, merely use it like a normal variable. You may access its value
@path = split(/:/, $PATH);
print join("
", @LD_LIBRARY_PATH), "
";
or modify it
$PATH .= ":.";
push @LD_LIBRARY_PATH, $dir;
however you'd like. Bear in mind, however, that each access to a tied array variable requires splitting the environment variable's string
anew.
The code:
use Env qw(@PATH);
push @PATH, '.';
is equivalent to:
use Env qw(PATH);
$PATH .= ":.";
except that if $ENV{PATH} started out empty, the second approach leaves it with the (odd) value "":."", but the first approach leaves it
with ""."".
To remove a tied environment variable from the environment, assign it the undefined value
undef $PATH;
undef @LD_LIBRARY_PATH;
LIMITATIONS
On VMS systems, arrays tied to environment variables are read-only. Attempting to change anything will cause a warning.
AUTHOR
Chip Salzenberg <chip@fin.uucp> and Gregor N. Purdy <gregor@focusresearch.com>
perl v5.16.2 2012-10-11 Env(3pm)