3

システムのさまざまなディレクトリにある一連のファイルを実行する簡単なプログラムを作成しています。基本的には、それらを開いて有効な XML をチェックする必要があります。このプログラムのオプションの 1 つは、不良な xml ファイルを一覧表示することです。

これが私の質問につながります。XARGSで使用するためにこれをフォーマットするのに最適な出力は何ですか。各エントリを改行に入れるだけで十分だと思いましたが、少し混乱しているようです。ファイル名にはすべてスペースが含まれているためです。

つまり、私の出力は次のとおりです。

./dir name 1/file 1.xml
./dir name 2/file 2.xml
./dir name 3/file 3.xml

次のコマンドを試しましたが、「そのようなファイルまたはディレクトリはありません」と表示され続けます。

./myprogram.py --list BADXML | xargs -d '\n' cat

XARGS の使用方法を誤解しているか、プログラムの出力形式を少し変更する必要があります。ここで使用する最も簡単なルートはわかりません。回避できるのであれば、常に混乱した xarg オプションを入力しなければならないのは嫌です。

4

3 に答える 3

2

man xargs

- ヌル

-0 入力項目は、空白ではなくヌル文字で終了し、引用符とバックスラッシュは特別なものではありません (すべての文字が文字どおりに解釈されます)。他の引数と同様に扱われるファイル文字列の終わりを無効にします。入力項目に空白、引用符、またはバックスラッシュが含まれる可能性がある場合に役立ちます。GNU find -print0 オプションは、このモードに適した入力を生成します。

于 2010-01-31T06:02:16.803 に答える
0

GNU Parallel http://www.gnu.org/software/parallel/を使用すると、myprogram.py を変更せずに実行できるはずです。

./myprogram.py --list BADXML | parallel cat

追加のボーナス: cat は並行して実行されるため、マルチコア コンピューターではより高速になる可能性があります。

于 2010-06-10T19:43:51.287 に答える