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:
Here is the output:
As you can see, something is not working when I try to parse $EVENTMSG. My expected outcome is:
Ultimately, I am trying to verify that the $MNAME is the non-FQDN formated name as the ModelName contained in the $EVENTMSG.
The regex syntax of:
takes the FQDN (or Fully Qualified Domain Name) and pulls the dot (.) suffix off of it.
Any ideas?
MANY THANKS IN ADVANCE!!
As usual in your postings, you leave out a lot of details that are needed to help solve your problem:
What is in the shell variable EVENTMSG? For the purposes of this thread, I will assume that it contains the lines:
and
and several other lines before and/or after these lines.
On these lines, I have no idea whether the whitespace between ...= and the following data is one or more <tab>s, one or more <space>s, or a combination of <space>s and <tab>s. The search expressions used below allow any combination of one or more <space> and/or <tab> characters.
You don't say what system you're using. It is obvious why you're getting the error you're getting on your sed command (you have a request to use backreference #1 in your replacement string, but you didn't define a subexpression in your BRE), but it isn't obvious whether or not the \w would be treated as a match for whitespace (as in perl) or treated as an escaped w as specified by the standards for BREs in the sed utility. And, BREs in the standard don't treat + as special in a BRE. (It means match one or more of the previous expression in an ERE, but it just matches a <plus-sign> in a BRE.
You search for odelName=, but you seem to have ModelName: in what you want output. I will assume for now that $EVENTMSG contains <equals-sign>s, but you want to translate them to <colon>s in your output.
The suggested text here should work on UNIX-, Linux-, and BSD-systems as long as you're using a POSIX compatible shell (such as bash or ksh). (I use ksh so it is what is specified here, but I'm not using any ksh specific features.)
This example is an amalgam of your original posting and the updated text in your original posting:
Note that the first bracet expression in both sed statements is the four character sequence: <left-square-bracket>, <space>, <tab>, and <right-square-bracket>.
This script produces the following output on OS X (and should be the same on any system with a sed conforming to the standards:
I hope this helps,
Don
This User Gave Thanks to Don Cragun For This Post:
Hi all,
How can I use sed to perform a substitution if the string that I'm going to substitute is stored in a variable:
Let's say:
sed 's/abcdefg/good'
VS
tmp="abcdefg"
sed 's/$tmp/good'
The second case doesn't work. Guess it's due to the single quotes on the outside. How can I... (1 Reply)
Hi, I am getting the error
01.30 Invalid shell error
I am running the bash shell script in the korn login shell.
I have mentioned the #!/bin/bash statement in the my script but not sure why it is giving this error to me.. (4 Replies)
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... (1 Reply)
Guys,
May i know how can we de reference the code reference variable.?
my $a = sub{$a=shift;$b=shift;print "SUM:",($a+$b),"\n";};
print $a->(4,5);
How can we print the whole function ?
Please suggest me regarding this.
Thanks for your time :)
Cheers,
Ranga :) (0 Replies)
Hi,
I have this script which gives me output as Invalid null command
set recent_file=`grep '^-.*xlsx$' $FTP_LOG |\
sed -e 's/Jan/1/g' \
-e 's/Feb/2/g' \
-e 's/Mar/3/g' \
-e... (6 Replies)
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)
Hi,
I need a ksh script to replace indirect directory references in an .ini file with a env variable using sed or awk.
The .ini file is for example as such:
A=..
B=../
C=../..
D=../../
E=../bin
F=../../bin
G=../../bin/xml
H=../../bin/xml/
Need to replace an instance of .. or... (2 Replies)
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)
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)