Two Laptop Bag*
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
JavaRanch » Java Forums » Engineering » Linux / UNIX
Bookmark "using exec in find, awk? xargs?" Watch "using exec in find, awk? xargs?" New topic
Author

using exec in find, awk? xargs?

Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

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: 11525
    
100

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: 16305
    
  21

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.
 
jQuery in Action, 2nd edition
 
subject: using exec in find, awk? xargs?