Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Jan 2003 14:04:33 -0500
From:      "David S. Jackson" <deepbsd@earthlink.net>
To:        Danny <lists@brenius.com>
Cc:        questions@FreeBSD.ORG, deepbsd@earthlink.net
Subject:   Re: Shell guru needed.(xargs question)
Message-ID:  <20030103190433.GB1925@sylvester.dsj.net>
In-Reply-To: <003301c2b340$7e473570$7801a8c0@afi>
References:  <200301030103.h0313b67012698@labs.unixhideout.com> <20030103152501.GA1925@sylvester.dsj.net> <003301c2b340$7e473570$7801a8c0@afi>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 03, 2003 at 10:55:09AM -0500 Danny <lists@brenius.com> wrote:
> Could you please give another realworld example of using xargs and
> your definition of it. I had a glance through man xargs, but I enjoy input
> from humans that use it as well. :)

Xargs is pretty neat.  You have to remember that there are different
implementations of it, too, so xargs on Linux would probably be
different than xargs on *BSD (it always is different in my experience).
The differences would mainly be in switches and default behavior.

I use xargs with lots of different utilities, just depending on what I
need to do with whatever files I'm catching.  For example, let's say I
wanted to rename some files:

locate *.PDF | xargs -I % mv % `basename % .PDF`.pdf

It's handy if you have a bunch of files in one directory that you want
to check somehow:

ls *.{jpg,gif} | xargs -J % file % | grep -v 'JPEG\|GIF'

Moving files to another directory is a popular use:

locate *.suf | xargs -J % mv % /path/to/dir


Note that you do not always need to use xargs.

locate *.PDF | while read name; do
mv $name ${name%.PDF}.pdf
done


There's lots more you can do with it.  Your imagination is almost your
only limitation.  :-)


-- 
David S. Jackson                        dsj@dsj.net
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
And now for something completely the same.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030103190433.GB1925>