Date: Thu, 3 Apr 2003 14:16:17 -0500 From: Jim Trigg <jtrigg@spamcop.net> To: freebsd-questions@freebsd.org Subject: Re: #!sh grep and move files Message-ID: <20030403191617.GC58403@s-gabriel.org> In-Reply-To: <200304031147.30097.mbettinger@championelevators.com> References: <200304031147.30097.mbettinger@championelevators.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 03, 2003 at 11:47:30AM -0600, Matthew Bettinger wrote: > > I am trying to find the best way to search through several thousand files and > move some to a different directory. The files are all prefixed with LB. > Like, LBX99.DAT141683. > > These are data transactions and contain one line. The lines i am trying to > search for all begin with > > 1~TA~ (standing for timeand attendance labor transactions) > > I've tried > > #!/usr/bin/sh > for x in `find /dir -type f -exec grep '1~TA' [] \;` This will print matching lines; what you want here is grep -l, but see below. > do > mv $x /newdir > done > ---------------------------- > > > There seems to be something i am missing like some output redirection or an > ls listing... probably alot more. > > I know this can be done in a one liner somehow but I need it to be executed > from cron. find is actually a bit of overkill; this can be done as follows: #!/usr/bin/sh mv `grep -lr '1~TA' /dir` /newdir If you're using it from cron, make sure to use full paths for mv and grep (and find, if you keep using it) as the cron path may not be what you expect. Jim -- Jim Trigg, Lord High Everything Else O- /"\ \ / ASCII RIBBON CAMPAIGN Hostmaster, Huie Kin family website X HELP CURE HTML MAIL Verger, All Saints Church - Sharon Chapel / \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030403191617.GC58403>