Automatic way of applying the same command to a bunch of files

Paul Smith phhs80 at gmail.com
Wed Sep 20 22:18:04 UTC 2006


On 9/20/06, Todd Zullinger <tmz at pobox.com> wrote:
> > Thanks, Steven and Andy. The last Andy's solution works fine. However,
> > with Steven's one, I get the following:
> >
> > $ find . -name \*.wav -print0 | xargs -0 sox "{}" -r 44100 -t wav
> > "output_{}"
> > sox: Can't open input file '{}': No such file or directory
>
> To use the {} replacement for the file, xargs should have the -i
> option:
>
>     ... | xargs -0 -i sox '{}' ...
>
> Of course, the xargs manpage says that -i is deprecacted and you
> should instead use -I replace-str.  You can make things more readable
> this way as well:
>
>     ... | xargs -0 -I wav sox 'wav' ...

It does not work either:

$ find . -name \*.wav -print0 | xargs -0 -I wav sox "{}" -r 44100 -t
wav "output_{}"
sox: Can't open input file '{}': No such file or directory
[...]

Paul




More information about the fedora-list mailing list