OSXのxargs:無効なオプション -

OSXのxargs:無効なオプション -

私はOSXを使用しています。特定のディレクトリのすべてのpngに対してPythonスクリプトを実行したいと思います。私が試したことは次のとおりです。

find docs/ -name "*png" | xargs --replace=F python myscript.py "F"

しかし、私はこれを見る:

xargs: illegal option -- -
usage: xargs [-0opt] [-E eofstr] [-I replstr [-R replacements]] [-J replstr]
             [-L number] [-n number [-x]] [-P maxprocs] [-s size]
             [utility [argument ...]]

私は何が間違っていましたか?

答え1

xargsMac OS Xの場合この--replaceオプションはサポートされていません-I

find docs/ -name "*png" | xargs -I F python myscript.py "F"

xargsこのバージョンでは、単一文字の後の文字を-オプションとして解釈して存在しないという--replaceオプションを探しているため、奇妙なエラーメッセージが生成されます。-

答え2

Mac OSX xargs長いオプションはサポートされていません。GNU xargs--replaceGNU xargsのように使用するには、次のようにします-I

find docs/ -name "*png" | xargs -I F python myscript.py "F"

find -print0ファイル名に改行文字が含まれていると、この方法は中止されます。次のように使用したい場合xargs -0

find docs/ -name "*png" -print0 | xargs -0 -I F python myscript.py "F"

または標準1:

find docs/ -name "*png" -exec python myscript.py {} +

関連情報