On Mon, Mar 26, 2007 at 11:38:31AM -0400, Jerry wrote:
> Lloyd ([EMAIL PROTECTED])'s solution works:
> 
> find -type f -name '*out*' | xargs grep -wli zip > zip.txt
> 
> Question: "-type f" limits to "regular file", does the so-called "regular
> file" strictly mean "plain text files"?

It does not. "regular file" means not a special file, directory,
named pipe, symbolic link, or socket. "plain text files" are a
subset of "regular files".  If you just want to omit non-text files
from the output, something like:

  find . -type f -name '*out*' -print0 | xargs -0 grep -wliI zip > zip.txt

will probably do what you want.  The -I option to GNU grep tells it
to treat binary files as if they contain no matches.  The -print0
to find and -0 to xargs improve handling of file names that contain
whitespace.

> Steven's solution (listed below) only partially works, for reasons I don't
> know. By "partially", I mean his solution can only find SOME files matching
> the search criteria.
> 
> find . -type f -name \*out\* | \
> xargs file | \
> awk '/ASCII/ { sub(/:/, ""); print $1}' | \
> xargs grep -l zip > zip.txt

If you run 'find . -type f -name '*out*' -print0 | xargs -0 file'
I bet some of the files you are calling "plain text files" are not
"ASCII text files", which is what the above is looking for.  For
example, a file 'file' reports as "ISO-8859 English text" will
almost certainly meet *your* critera for "plain text", but doesn't
include "ASCII" anywhere in the output of 'file'.

-- 
[EMAIL PROTECTED]          OpenPGP KeyID 0x57C3430B
Holder of Past Knowledge           CS, O-
"Working on Megatokyo is a lot like trying to fix the engine on a bus while
 it cruises down a bumpy highway at 75 mph with two monkeys fighting over
 the steering wheel and a brick on the accelerator."  Piro

_______________________________________________
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

Reply via email to