in reply to Re: Replacing text inside lots of files
in thread Replacing text inside lots of files

Thanks for the hint regarding the variable name. I tried this example by passing a single filename as argument. The text to be replaced has been found and replaced. But only in the first line of the file. The other occurrences have not been replaced. I use this with "active Perl" in a DOS-Box in Win2k. And using the asterisk gives the error message "Can't open *: Invalid argument".
  • Comment on Re: Re: Replacing text inside lots of files

Replies are listed 'Best First'.
Re(3) Replacing text inside lots of files
by delirium (Chaplain) on Nov 03, 2003 at 11:13 UTC
    Alright, now I get what you're trying to do. Your original post didn't quite make clear that the text was to be replaced everywhere in the file. Try this (formatted for Win32):

    perl -i~ -pe "if($ARGV ne $z){$f=$z=$ARGV;$f=~s/\.wra//;/(.{10})$/; $r +=$1} s/$r/$f/g" *.wra

    Of course, at this point the solution stops looking elegant and cool (not that it ever really did), and there are too many one-letter variables. My recommendation is to invest some time in studying Perl and create a real script to do your modifications.

    The one-liner may be cute and good for obfuscation value, but if you aren't sure what it's doing, it shouldn't go into production/be handed in for your assignment, etc. By the way, this time it's a one, not an el.

      This works great! And helped me to understand how to form regular expressions. Thanks again.