Mar 28, 2011, 8:41 AM
Post #7 of 7
Thank you for the suggestions.
Re: [FishMonger] Can I do an if-then-else regex mixing match and substitution?
[In reply to]
miller's suggestion is pretty much what I was trying to accomplish.
However, I am executing this in in-place edit mode in a batch file and it's failing on the vertical bar character in my regex:
The error is "The system cannot find the path specified."
I realize that I don't need the vertical bar character, in this case, but if I do in the future, this could be an issue. Now, I tried modifying it a couple of different ways to narrow in on the problem.
This does not:
I tried escaping the vertical bar but I got the same error:
Does anybody know what's the problem?
Update: I did manage to find the solution. The problem is I had to precede the vertical bar with the caret (^) symbol and now it enters the if loop, due to the fact that i'm executing a Perl script inside a batch file.
I also discovered that doing a match, followed by a substitution using in-place edit mode won't replace in the file. I think this is also due to the batch process. FYI, I'm using
for %%X in (*.txt) do perl -pi.bak -e "Perl code" %%X
What I'm wondering is is it possible to use look-ahead or look-behind assertions in substitutions or are assertions for matching only? Either way, it appears that in-place edit won't work here and I'll have to follow your suggestions to a T, running separate perl script.
Thank you for your help.
(This post was edited by poly4life on Mar 28, 2011, 9:34 AM)