Oh, you're on Windows, it may not work because of the shell ("cmd").

In Windows the single quotes around the code usually need to be double
quotes, and it doesn't seem to be expanding *.cpp when on Unix (types) it
will expand that to all of the individual file names.

I guess you need to write a script then like you were originally planning to
do.  ...Or if you want to be bold, install Cygwin (http://www.cygwin.com/)
which includes tons of Unix utilities that will run on Win95/98/ME/NT/2K.
Among the utilities is "bash", and command shell which you can use instead
of "cmd" on NT/2K and "command" on Win95/98/ME.  After using bash for a
while you will wonder why you ever wanted to use "cmd" to begin with (I know
I do).

Rob


-----Original Message-----
From: Booher Timothy B 1stLt AFRL/MNAC
[mailto:[EMAIL PROTECTED]]
Sent: Friday, February 01, 2002 10:46 AM
To: Brett W. McCoy; Booher Timothy B 1stLt AFRL/MNAC
Cc: [EMAIL PROTECTED]
Subject: RE: change all files in directory


When I try to run the one-liners I get:

Can't open *.cpp: Invalid argument.
Can't open *.hpp: Invalid argument.

But when I do a dir command I get:
target_functions.cpp    target_modules.cpp      global_constants.hpp
global_header.hpp       class_functions.cpp     S2b_4.opt

Clearly these files are there . . . or am I just doing something silly . . .

tim

-----Original Message-----
From: Brett W. McCoy [mailto:[EMAIL PROTECTED]]
Sent: Friday, February 01, 2002 9:47 AM
To: Booher Timothy B 1stLt AFRL/MNAC
Cc: [EMAIL PROTECTED]
Subject: Re: change all files in directory

On Fri, 1 Feb 2002, Booher Timothy B 1stLt AFRL/MNAC wrote:

> Hello, I am trying to change all files in a directory that contain the
> strings Satellite satellite and SATELLITE that I need to change to target,
> Target and TARGET. Because many of these are C++ source files I need to
> preserve the case. I was thinking of the following script:
>
> #!/usr/bin/perl -w
> #UNTESTED
>
> @FilesInDirectory = <*.cpp *.hpp *.asc>;
> foreach $FileName (@FilesInDirectory) {
>             open(IN, $FileName);
>             while<IN> {
> $_ =~ s/satellite/target/;
> $_ =~ s/Satellite/Target/;
> $_ =~ s/SATELLITE/TARGET/;}
> }
>
> but this just doesn't seem as efficient as it can be. I was trying to
think
> of regex that could do it all in one line but it seemed so much simpler to
> do it in three.

This can actually be done on the command-line:

perl -pi.bak -e 's/satellite/target/g' *.cpp *.hpp. *.asc

There's nothing wrong with doing it in three steps.

-- Brett
                                          http://www.chapelperilous.net/
------------------------------------------------------------------------
"Trust me":
        Translation of the Latin "caveat emptor."

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to