On Sat, Jun 14, 2008 at 1:05 PM, Octavian Rasnita <[EMAIL PROTECTED]> wrote:
> From: "Xavier Noria" <[EMAIL PROTECTED]>> On Sat, Jun 14, 2008 at 9:56 AM, > Octavian Rasnita <[EMAIL PROTECTED]> wrote: >> >>> Is there a one-liner command that can replace a certain text with another >>> in >>> more files specified with wildcards like *.html that works under Windows >>> cmd? >> >> Since you ask this you probably know the Windows shell does not expand >> wildcards. There's a trick for Perl one-liners though (untested): >> >> perl -e "@ARGV = glob(qq($ARGV[0])); s/foo/bar/ while <>" >> >> You see the idea. >> > > Thank you but I don't think it works without writing a full perl program in > a single line that does that. > > If I just replace the string in $_, the files are not updated. > > If I also use -pi.bak parameter in order to do that, it gives an error > telling that the specified file (*.txt) can't be opened. > > So I can't see another solution than opening the files, making the > replacement than writing the new content. Absolutely, try putting a BEGIN block around (again untested): perl -pi.bak -e "BEGIN { @ARGV = glob(shift) } s/foo/bar/g" "*.html" -- fxn -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/