grep, maybe
Ben Scott
dragonhawk at gmail.com
Thu Oct 29 16:55:54 EDT 2009
On Thu, Oct 29, 2009 at 2:20 PM, Joshua Judson Rosen
<rozzin at geekspace.com> wrote:
> grep --recursive --files-with-matches "$searchstring" "$topdir" \
> | xargs --max-args=1 dirname \
> | sort --unique \
> | xargs mv --target-directory="$newloc"
I like it. I didn't know about the "--target-directory" option to
mv(1). That'll come in handy in the future. Thanks...
Hmmm, file names with spaces are likely to foul things; xargs splits
on any whitespace by default. Maybe:
grep --recursive --files-with-matches "$searchstring" "$topdir" \
| xargs --delimiter=\\n --max-args=1 dirname \
| sort --unique \
| xargs --delimiter=\\n mv --target-directory="$newloc"
Explicitly specifying the delimiter as newline means "newline only".
Whitespace within a line is ignored.
(It will still fail if a file name contains a *newline*, but that's
pathological, while file names with spaces are quite common.)
> Don't be afraid to ask (Lf.((Lx.xx) (Lr.f(rr)))).
Okay, I'll ask: What does that stuff to the right mean? Some kind of LISP?
-- Ben
More information about the gnhlug-discuss
mailing list