Simple bash script to grep files for bad keywords

2005-03-23 Thread Brian John
Hello,
I am trying to write a simple bash script that will grep all files in a
directory (except ones that start with 00) for certain bad keywords. 
Here is what I have so far:
#!/bin/bash

# This is a simple script to check all sql scripts for bad keywords

BAD_KEYWORDS='spool echo timing commit rollback'

for i in $BAD_KEYWORDS;
do
  echo *;
echo GREPing for bad keyword '$i'
echo *;
grep $i ./*;
done

However, I'm not sure how to make it not grep the files that start with
00.  Can anyone help me with this?

Thanks

/Brian
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Simple bash script to grep files for bad keywords

2005-03-23 Thread Giorgos Keramidas
On 2005-03-23 12:29, Brian John [EMAIL PROTECTED] wrote:
 Hello,
 I am trying to write a simple bash script that will grep all files
 in a directory (except ones that start with 00) for certain bad
 keywords.  Here is what I have so far:

 #!/bin/bash

 # This is a simple script to check all sql scripts for bad keywords

 BAD_KEYWORDS='spool echo timing commit rollback'

 for i in $BAD_KEYWORDS;
 do
   echo *;
 echo GREPing for bad keyword '$i'
 echo *;
 grep $i ./*;
 done

 However, I'm not sure how to make it not grep the files that start
 with 00.  Can anyone help me with this?

Use xargs, since it will buy you the extra feature of being able to
search through arbitrarily large numbers of files:

for _word in ${BAD_KEYWORDS} ;do
find . | grep -v '^/00' |\
xargs grep ${_word} /dev/null
done

Tips:

- The quotes in ${_word} are probably optional, but it's better to
  be safe than sorry :-)

- The /dev/null is there so that grep will get at least 2 file
  arguments, even if there is just one file in the current directory,
  effectively forcing grep(1) to print the filename of this one file
  if it happens to match the pattern.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Simple bash script to grep files for bad keywords

2005-03-23 Thread Brian John
 On 2005-03-23 12:29, Brian John [EMAIL PROTECTED] wrote:
  Hello,
  I am trying to write a simple bash script that will grep all files
  in a directory (except ones that start with 00) for certain bad
  keywords.  Here is what I have so far:

  #!/bin/bash
 
  # This is a simple script to check all sql scripts for bad keywords
 
  BAD_KEYWORDS='spool echo timing commit rollback'
 
  for i in $BAD_KEYWORDS;
  do
echo *;
  echo GREPing for bad keyword '$i'
  echo *;
  grep $i ./*;
  done
 
  However, I'm not sure how to make it not grep the files that start
  with 00.  Can anyone help me with this?

 Use xargs, since it will buy you the extra feature of being able to
 search through arbitrarily large numbers of files:

 for _word in ${BAD_KEYWORDS} ;do
 find . | grep -v '^/00' |\
 xargs grep ${_word} /dev/null
 done

 Tips:

 - The quotes in ${_word} are probably optional, but it's better to
   be safe than sorry :-)

 - The /dev/null is there so that grep will get at least 2 file
   arguments, even if there is just one file in the current directory,
   effectively forcing grep(1) to print the filename of this one file
   if it happens to match the pattern.

Cool, I think I get it for the most part.  However, what exactly am I
doing when I am piping to xargs?  I can see that the filenames not
starting with '00' will be piped, but what does the '\' do?  Sorry, I am
really new to scripting and *nix in general.  But I am a programmer so I
learn fast.

Thanks!

/Brian
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Simple bash script to grep files for bad keywords

2005-03-23 Thread Philip M. Gollucci
Brian John wrote:
On 2005-03-23 12:29, Brian John [EMAIL PROTECTED] wrote:
   

Hello,
I am trying to write a simple bash script that will grep all files
in a directory (except ones that start with 00) for certain bad
keywords.  Here is what I have so far:
 

#!/bin/bash
# This is a simple script to check all sql scripts for bad keywords
BAD_KEYWORDS='spool echo timing commit rollback'
for i in $BAD_KEYWORDS;
do
 echo *;
   echo GREPing for bad keyword '$i'
   echo *;
   grep $i ./*;
done
However, I'm not sure how to make it not grep the files that start
with 00.  Can anyone help me with this?
 

Use xargs, since it will buy you the extra feature of being able to
search through arbitrarily large numbers of files:
   for _word in ${BAD_KEYWORDS} ;do
   find . | grep -v '^/00' |\
   xargs grep ${_word} /dev/null
   done
Tips:
- The quotes in ${_word} are probably optional, but it's better to
 be safe than sorry :-)
- The /dev/null is there so that grep will get at least 2 file
 arguments, even if there is just one file in the current directory,
 effectively forcing grep(1) to print the filename of this one file
 if it happens to match the pattern.
   

Cool, I think I get it for the most part.  However, what exactly am I
doing when I am piping to xargs?  I can see that the filenames not
starting with '00' will be piped, but what does the '\' do?  Sorry, I am
really new to scripting and *nix in general.  But I am a programmer so I
learn fast.
Thanks!
/Brian
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]
 

I can see that the filenames not
starting with '00' will be piped, but what does the '\' do?
The '\' means pretend I typed the next line on this line
he used it because most mailers wrap the e-mail lines at 80 characters,
but it needs to be on one line to work.  If you wrote it on one line in the
script file, you can omit that '\'
Luck
--
END
-
Philip M. Gollucci
Senior Developer - Liquidity Services Inc.
Phone:  202.568.6268 (Direct)
E-Mail: [EMAIL PROTECTED]
Web:http://www.liquidation.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]