Help with SED


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with SED
# 1  
Old 03-28-2012
Help with SED

Anyway, i'm writing a shell script and i read in input with the following:
read $foo


i now want to use this variable in my sed string replacement like so:
Code:
sed -i 's/replaceme/$foo' myfile.txt


What i'm getting instead is the literal substitution not what $foo actually equals. Instead i want it to be the input of the user:


-Sid

Last edited by Franklin52; 03-29-2012 at 07:06 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 03-28-2012
Quote:
Originally Posted by Siddheshk
Anyway, i'm writing a shell script and i read in input with the following:
read $foo
That's probably not doing what you want. It will not read input into the variable named foo.

Try
Code:
read foo


Quote:
i now want to use this variable in my sed string replacement like so:
sed -i 's/replaceme/$foo' myfile.txt


What i'm getting instead is the literal substitution not what $foo actually equals. Instead i want it to be the input of the user:


-Sid
Variables never expand inside single quotes. Try double quotes.
Code:
$ var=asdf
$ echo '$var'
$var

$ echo "$var"
asdf

$

# 3  
Old 03-28-2012
may be i did not explain well..

here is the live example..

Code:
read -p "Enter your name of rocommunity string you wish to set and press [ENTER]: "  string

sed -i '/rocommunity/s/public/$string/' /opt/adapter/Adapter/snmp/conf/snmpd.conf

here the value of string is "spider..Now do i use to replace with sed command as mentioned above.

---------- Post updated at 12:53 AM ---------- Previous update was at 12:31 AM ----------

Corona688, any suggestion please.

-Siddhesh
# 4  
Old 03-28-2012
You're still putting the variable in single ' ' quotes.

Variables never expand in single ' ' quotes.

Put it in double " " quotes.
# 5  
Old 03-28-2012
Well i tried the same.

the script runs succesfully but the value is not replaced to i pass on when prompted for.

Code:
[root@Mediaspire siddhesh]# ./rommonity_new.sh
`/opt/adapter/Adapter/snmp/conf/snmpd.conf' -> `/var/tmp/snmpd.conf_27Mar2012'
`/opt/adapter/ManagementTool/conf/MTInternalConfig.properties' -> `/var/tmp/MTInternalConfig.properties_27Mar2012'
Hello, You are about to change the rocommunity string in  /opt/adapter/Adapter/snmp/conf/snmpd.conf.
Enter your name of rocommunitry string you wish to set andpress [ENTER]:data

It replace the one specified in sed command but not the value for it.
Please advice.

-Siddhesh
# 6  
Old 03-28-2012
Show the input you have and the output you want. Your sed expression may not be right -- without seeing the data it's supposed to match and change, I really can't tell.

Also show the current contents of your script.

I really don't reccomend using things like sed -i without backing up the originals first. Destroying your original configuration files by accident would be a big problem.
# 7  
Old 03-28-2012
Code:
#Defining Variable
#------------------------
IP_LIST=/root/IP_LIST
ADAPTER_HOME=/opt/adapter
SNMP=/opt/adapter/Adapter/snmp/conf/snmpd.conf
BACKUP_DIR=/var/tmp
DATE=`date +%Y%m%d%H%M%S`
LOG=/root/community_logs
TMP=/tmp/value

#Backing Up Orginal Files
#-------------------------
echo "Backing up the original configuration file to $BACKUP_DIR" > $LOG.$DATE
cp -pv $ADAPTER_HOME/Adapter/snmp/conf/snmpd.conf $BACKUP_DIR/snmpd.conf_$(date +%d%b%Y)
cp -pv $ADAPTER_HOME/ManagementTool/conf/MTInternalConfig.properties $BACKUP_DIR/MTInternalConfig.properties_$(date +%d%b%Y)
echo "Orignal Log file back-up done succesfully" >$LOG.$DATE

echo "Hello, You are about to change the rocommunity string in  "/opt/adapter/Adapter/snmp/conf/snmpd.conf"."


read -p "Enter your name of rocommunitry string you wish to set andpress [ENTER]:" string

sed -i "/rocommunity/s/public/$string/" /opt/adapter/Adapter/snmp/conf/snmpd.conf

exit 0

I want the value which i enter to be replace in /opt/adapter/Adapter/snmp/conf/snmpd.conf file for rocommunity variable.

-Siddhesh
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

I am learning regular expression in sed,Please help me understand the use curly bracket in sed,

I am learning SED and just following the shell scripting book, i have trouble understanding the grep and sed statement, Question : 1 __________ /opt/oracle/work/antony>cat teledir.txt jai sharma 25853670 chanchal singhvi 9831545629 anil aggarwal 9830263298 shyam saksena 23217847 lalit... (7 Replies)
Discussion started by: Antony Ankrose
7 Replies

2. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

3. Shell Programming and Scripting

sed inside sed for replacing string

My need is : Want to change docBase="/something/something/something" to docBase="/only/this/path/for/all/files" I have some (about 250 files)xml files. In FileOne it contains <Context path="/PPP" displayName="PPP" docBase="/home/me/documents" reloadable="true" crossContext="true">... (1 Reply)
Discussion started by: linuxadmin
1 Replies

4. Shell Programming and Scripting

How to use sed to replace the a string in the same file using sed?

How do i replace a string using sed into the same file without creating a intermediate file? (7 Replies)
Discussion started by: gomes1333
7 Replies

5. UNIX for Dummies Questions & Answers

SED: Can't Repeat Search Character in SED Output

I'm not sure if the problem I'm seeing is an artifact of sed or simply a beginner's mistake. Here's the problem: I want to add a zero-width space following each underscore between XML tags. For example, if I had the following xml: <MY_BIG_TAG>This_is_a_test</MY_BIG_TAG> It should look like... (8 Replies)
Discussion started by: rhetoric101
8 Replies

6. Shell Programming and Scripting

deleting text records with sed (sed paragraphs)

Hi all, First off, Thank you all for the knowledge I have gleaned from this site! Deleting Records from a text file... sed paragraphs The following code works nearly perfect, however each time it is run on the log file it adds a newline at the head of the file, run it 5 times, it'll have 5... (1 Reply)
Discussion started by: Festus Hagen
1 Replies

7. Shell Programming and Scripting

sed has zeored my files. Help me with sed please

i made a script to update a lot of xml files. to save me some time. Ran it and it replaced all the the files with a 0kb file. The problem i was having is that I am using sed to change xml node <doc_root>. The problem with this is it has a / in the closing xml tag and the stuff inside will also have... (4 Replies)
Discussion started by: timgolding
4 Replies

8. Shell Programming and Scripting

sed over writes my original file (using sed to remove leading spaces)

Hello and thx for reading this I'm using sed to remove only the leading spaces in a file bash-280R# cat foofile some text some text some text some text some text bash-280R# bash-280R# sed 's/^ *//' foofile > foofile.use bash-280R# cat foofile.use some text some text some text... (6 Replies)
Discussion started by: laser
6 Replies

9. Shell Programming and Scripting

Issue with a sed one liner variant - sed 's/ ; /|/g' $TMP1 > $TMP

Execution of the following segment is giving the error - Script extract:- OUT=$DATADIR/sol_rsult_orphn.bcp TMP1=${OUT}_tmp1 TMP=${OUT}_tmp ( isql -w 400 $dbConnect_OPR <<EOF select convert(char(10), s.lead_id) +'|' + s.pho_loc_type, ";", s.sol_rsult_cmnt, ";", +'|'+ s.del_ind... (3 Replies)
Discussion started by: kzmatam
3 Replies

10. Shell Programming and Scripting

Sed Question 1. (Don't quite know how to use sed! Thanks)

Write a sed script to extract the year, rank, and stock for the most recent 10 years available in the file top10_mktval.csv, and output in the following format: ------------------------------ YEAR |RANK| STOCK ------------------------------ 2007 | 1 | Exxon... (1 Reply)
Discussion started by: beibeiatNY
1 Replies
Login or Register to Ask a Question