On Mar 26, Eloy A. Paris wrote
: Hi,
: 
: I was given a text file containing one file name (no full path name)
: per line. My task consists of searching the entire filesystem and
: generate a list of the files that are NOT present.

1. The perl solution:
-------------------------------
#!/usr/bin/perl
# * probably overkill, if your file list
#   is rather short.
# * probably storing the existing files in a @Array
#   and grepping is faster
# * probably a shell line with sort / uniq / comm would
#   do the same job

# generate a list of existing files
open(IN, "find . -type f -printf \"%f\n\"|") or die;
while(<IN>) { chomp; $Files{$_} = 1; }

# read in the search list and see, the file exists
open(IN, "searchlist") or die;
while (<IN>) { chomp; $Files{$_} or print "Missing: $_\n"; }


2. The Shell solution
--------------------------------

        find -type f -printf "%f\n" | sort > files.exist
        sort < searchlist > files.search
        comm -1 -3 files.exist files.search

        Heiko Schlittermann
---------------------------------------------
Heiko Schlittermann / Internet & Unix-Support
Kamenzer Str. 52              D-01099 Dresden 
Voice: +49-172-7909055     Mail: [EMAIL PROTECTED]

Attachment: pgpsQOuVF8mnU.pgp
Description: PGP signature

Reply via email to