aspose file tools*
The moose likes Linux / UNIX and the fly likes using exec in find, awk? xargs? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Engineering » Linux / UNIX
Bookmark "using exec in find, awk? xargs?" Watch "using exec in find, awk? xargs?" New topic

using exec in find, awk? xargs?

Pat Farrell

Joined: Aug 11, 2007
Posts: 4659

I want to run the ImageMagick "convert" program on a bunch of files. The find command is the obvios way to find the files.

find . -name "*.tif" -print
works perfectly.

What I want to do is run the convert program, something like

convert foo.tif foo.png

So I want to get the name and add a new extension, .png

Any help or even hints will be greatly appreciated.
Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11481

If you know that your files will all end in tiff, then you could just use sed:

(Untested, but it should work, unless you have spaces in your filenames, in which case that is a separate problem)

The Sun Certified Java Developer Exam with J2SE 5: paper version from Amazon, PDF from Apress, Online reference: Books 24x7 Personal blog
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16145

If you're truly evilly-minded, use the "xargs" utility and do it as a one-liner. I'm not up to actually attempting this on the spot, but if would be something vaguely resembling this, I think:

The trickiest part is probably going to be the filename subsitution on the xargs command, but I believe that using double-quotes around the braces is the way it works.

Customer surveys are for companies who didn't pay proper attention to begin with.
It is sorta covered in the JavaRanch Style Guide.
subject: using exec in find, awk? xargs?