2011-03-02 11 views
0

は誰かが、ファイルの数に対してexコマンドスクリプトを実行しようとする理由をするとき説明することができ、これは動作します:xargsのとEXコマンド入力

for x in `ls *`;do ex $x <excmds;done; 

をしかし、これはそうではない:

ls *|xargs -i ex {} <excmds 

最初にexを実行し、各ファイルの "excmds"でコマンドを実行します。 2番目は、どういうことがわかりませんが、ファイルは変更されません。 私はリダイレクトが問題であり、xargsの実行ごとに動作しないと思いますか? xargsでやる方法はありますか? (まだ私はxargsの上で上げてきた別の質問 - 多分私は:(それを使用して停止する必要があります)パラレル

+1

** ** –

+0

うーん、OK、それはです。私はそれを見て少し明白になりました。私はまだxargsでそれを行う方法を知りたいのですが、これは答えではなく、答えでなければなりません。 –

+0

Joe本当の答え(このコメントのみ)がなかったので、私は答えなかった。 'xargs'がこの仕事のための間違ったツールであるようにも思えます。あなたはいくつかのコマンド*を各ファイルに対して正確に1回実行したいと思っています。 'xargs'は複数の入力を同時に処理できるコマンドを実行するのに便利です。 –

答えて

0

利用GNU:

ls * | parallel ex {} \<excmds 

は多くを学ぶためにイントロビデオを見る:http://www.youtube.com/watch?v=OpaiGYxkSuQ

10秒のインストール:ls` `の出力の代わりにexcmds``から入力を読み込みますxargs`この場合 `で

wget pi.dk/3 -qO - | sh -x 
関連する問題