xargs出力後にコマンドラインスイッチを提供

xargs出力後にコマンドラインスイッチを提供

私がこのコマンドを使用すると仮定すると:

outputStuff.sh | awk -F"-" '{print $5"-"$6}' | xargs someTool (XARGS OUTPUT HERE) --someCommandLineSwitchHere

しかし、xargs出力の後にコマンドラインスイッチを提供する必要がありますか?この問題を解決した人はいますか?

答え1

したがって、このフラグは使用されますが、someTool入力ファイルの後に来る必要があります...サブシェルを使用すると、あらゆる種類の柔軟性が得られます。

xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool

処理後xargsは実際にこうなります。

xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool item1 item2 ... itemN

...一重引用符で囲まれた文字列の後のコマンドラインのすべての内容は、sh(位置引数)への入力引数になります。これは通常、使用したばかりの実行コマンドである$0ために開始されます(ここでは何でも許可されますが)。他のすべては、通常の位置引数(など)で構成されています。$0someToolxargs$1$2

関連情報