On Thu, Oct 29, 2009 at 11:38 AM, Maurice <mauri...@cds-cumberland.org>wrote:

> Looking for some guidance;
>
> I have several files within several folders (5 files per folder, and
> thousands of folders) that I need to search a text file within each
> folder for a word match (like three_little_pigs.txt, and I need to find
> "moe", if he's listed) and then when a match is found I need to move
> (not copy) that entire folder (and it's 3~5 files contained within) to
> another location...
>
>

#!/bin/sh
cd [top level directory]
grep -l -r ["search string in double quotes"] > /tmp/file_names_found
2>/tmp/grep.errs
cat /tmp/file_names_found|xargs -i basename {} >/tmp/dir_names_to_move
dir_list=`sort /tmp/dir_names_to_move|unique`
for DIRECTORY in $("dir_list"); do
     mvdir $DIRECTORY [new location here]
     STATUS=$?
     if [ $STATUS -ne 0 ]; then
        echo "mvdir returned status $STATUS"
     end
done
exit

You'll have to come up with a way to create the value for "new location
here" that is unique so you don't overlay all the directories into the same
path and lose everything, so maybe test it with a copy first.  You'll also
want to check /tmp/grep.errs for any error messages.  I hope this helps.

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

Reply via email to