私は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
xargs
Mac OS Xの場合この--replace
オプションはサポートされていません-I
。
find docs/ -name "*png" | xargs -I F python myscript.py "F"
xargs
このバージョンでは、単一文字の後の文字を-
オプションとして解釈して存在しないという--replace
オプションを探しているため、奇妙なエラーメッセージが生成されます。-
答え2
Mac OSX xargs長いオプションはサポートされていません。GNU xargs。--replace
GNU 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 {} +