On Thu, Oct 29, 2009 at 2:20 PM, Joshua Judson Rosen <roz...@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 _______________________________________________ gnhlug-discuss mailing list gnhlug-discuss@mail.gnhlug.org http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/