I’m trying to find some text in an XML file and delete only a part of a line that has it.
I found this format to try: perl -p -i -e "s/$1/$2/g" $3 after some code searches.
So I’m using this code:
perl -p -i.bak -e "s/\'../../../specialText/\'//g" "C:/box/fileName.XML";
What I want to do is delete everything from the inner single quotes as in:
‘../../../specialText/’, but using q() or \’ to escape the quote doesn’t work and I’m not sure the ..’s aren’t messing things up either. I’m guessing that not putting anything in as a text replacement will delete it properly, but I’m not sure.
The errors are:
-
Backslash found where operator expected at -e line 1, near “/specialText/\”
-
(Missing operator before \?)
syntax error at -e line 1, near “/specialText/\” - Can’t find string terminator “‘” anywhere before EOF at -e line 1.
How do rewrite this one liner to accomplish this?
This works.
C:\box>perl -p -i.bak -e s/Copyright/bar/g Test.txt
I tried it on another file, so now I just have to play with it to modify my original.
And what’s wrong with using another set of delimiters?