Shell Scripting Problem - Invalid Back Reference


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Scripting Problem - Invalid Back Reference
# 1  
Old 07-19-2012
Shell Scripting Problem - Invalid Back Reference

Here is the question...

Create a new script, sub2, taking three parameters...

1.) the string to be replaced
2.) the string with which to replace it
3.) the name of the file in which to make the substitution

...that treats the string to be replaced as plain text instead of as a regular expression.

Hint 1: Try to get the string to be replaced into a shell variable (e.g., $target). Then use a sed command to rewrite any special regular expression characters in that string so that they get treated as text, storing the result in a second shell variable (e.g., $newTarget). Then issue the actual command to perform the substitutions on the file.

Hint 2: For technical reasons, this task is probably easier accomplished in /bin/sh than in /bin/csh. If you insist upon using csh to run your script, you might need to solve this by writing your sed commands into a separate temparary file and using the -f option of sed to run commands from that file.

This is what I've got so far, but for some reason I keep getting the same error message...

Code:
#!/bin/bash
# Script to substitute text

# 0.00 17Jul2012 AI Copy sub1.sh
# 0.01 17Jul2012 AI Convert target to plain text
# 0.02 18Jul2012 AI basename $3

# Usage:
# ./sub2.sh string replace file

echo $1                # Echo options
echo $2
echo $3

plain=`echo "$1" | sed 's/./\\\&/g'`    # Convert target to plain text

basetmp=`basename $3`
tmpfile="/tmp/$basetmp.$$"        # Unique temporary file
sed "s/$plain/$2/g" "$3" > "$tmpfile"    # Edit
mv "$tmpfile" "$3"        # Recover edits


and the error message I get is...

sed: -e expression #1, char 8: Invalid back reference
# 2  
Old 07-19-2012
This is clearly classwork. Please review our policy on homework, and repost in the homework forum. That requires you to answer questions about the course and school.

Last edited by jim mcnamara; 07-19-2012 at 01:51 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed - use back reference in 2nd command

I have data that looks like this: <Country code="US"><tag>adsf</tag><tag>bdfs</tag></Country><Country code="CA"><tag>asdf</tag><tag>bsdf</tag></Country> I want to grab the country code save it, then drop each new "<..." onto a new line with the country code added to the beginning of each So,... (9 Replies)
Discussion started by: JenniferAmon
9 Replies

2. UNIX for Dummies Questions & Answers

Extract text in sed using back reference

i have a text 20 21 22 23 24 25 26 i want to get 22 using sed back reference. I have used sed 's/{6}\(..\).*/\1/' but, it does not work. I am missing something somewhere. Please help. (5 Replies)
Discussion started by: gotamp
5 Replies

3. Shell Programming and Scripting

sed back reference error

I am trying to change a single line of a special file whose comment character is ! to show a path to the file in the comment. such as: !!HFSS and mcm path: \Signal_Integrity\Package_SI\Section_Models\C4toTrace\28nm\D6HS\SLC_5-2-5\GZ41_ICZ\NSSS\ to a different path and replace the !!HFSS... (1 Reply)
Discussion started by: mobrien601
1 Replies

4. UNIX for Dummies Questions & Answers

Invalid back reference

The thread can be closed now :D. (3 Replies)
Discussion started by: vaz0r
3 Replies

5. Shell Programming and Scripting

sed error: invalid reference

Hello all, I am using sed to parse a particular part of a string and am having problems. I am getting the following error: sed: -e expression #1, char 28: invalid reference \1 on `s' command's RHS Here is the code I am using: echo "Alarm SET:" echo "" echo "Date: " $DATE echo... (4 Replies)
Discussion started by: dlundwall
4 Replies

6. Shell Programming and Scripting

Shell Scripting problem

Hi guys, I am a newbie to shell scripting.Please help me to accomplish this task. Its very urgent,I should create a script which will do the following: i) "cd ~joseph/ ; mkdir -p Bing/Bong ;mkdir -p Bing/Bang" and then create 15 ".txt" files with content "Bing Bang Bong" in "Bong"... (1 Reply)
Discussion started by: mahesh_raghu
1 Replies

7. Shell Programming and Scripting

Perl: Getting back reference from s modifier

My input text has the following pattens: func_a(3, 4, 5); I want to replace it with this: func_b(3, 4, 5, 6); I'm trying the following expression, but it does not work: perl -p -e "s/func_a\((.*)?\);/func_b(\1,\n6)/s" <... (8 Replies)
Discussion started by: cooldude
8 Replies

8. Shell Programming and Scripting

Problem with shell script...ORA-00904:invalid identifier

Guys, Please suggest me what's wrong with this script? #!/usr/bin/sh ############################################################################## # Author : Bhagat Singh # # # Date : Nov 13,2006 #... (12 Replies)
Discussion started by: bhagat.singh-j
12 Replies

9. Shell Programming and Scripting

back reference error

Hi, i am getting this error........ find ./ | sed '/\(*\) \(*\)/\2\1/' Unrecognized command: /\(*\) \(*\)/\2\1/ Any idea??? regards Apoorva Kumar (4 Replies)
Discussion started by: apoorvasharma80
4 Replies
Login or Register to Ask a Question