Unix - "xargs" - output "in the middle" (not at the end!)

Posted by Petike on Stack Overflow See other posts from Stack Overflow or by Petike
Published on 2009-09-05T11:57:23Z Indexed on 2010/06/10 19:12 UTC
Read the original article Hit count: 233

Filed under:
|
|

Hello, example use of "xargs" application in Unix can be something like this:

ls | xargs echo

which is the same as (let's say I have "someFile" and "someDir/" in the working dir):

echo someFile someDir

so "xargs" take its "input" and place it "at the end" of the next command (here at the end of echo).

But sometimes I want xargs to place its input somewhere "in the middle" of next command. For example:

find . -type f -name "*.cpp" -print | xargs g++ -o outputFile

so if I had in the current directory files "a.cpp" "b.cpp" "c.cpp" the output would be the same as with the command:

g++ -o outputFile a.cpp b.cpp c.cpp

but I want to have something like this:

g++ a.cpp b.cpp c.cpp -o outputFile

Is there a way to do it?

P.S.: I need it in some cases, because e.g.:

i586-mingw32msvc-g++ -o outputFile `pkg-config --cflags --libs gtkmm-2.4` a.cpp b.cpp c.cpp

doesn't work but this one works fine:

i586-mingw32msvc-g++ a.cpp b.cpp c.cpp -o outputFile `pkg-config --cflags --libs gtkmm-2.4`

Thanks.

Petike

© Stack Overflow or respective owner

Related posts about unix

Related posts about g++