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/