私は自分がやりたいことをするbashの「forループ」を持っています
for i in *.data
do
./prog $i >dir/$i.bck
done
これを xargs コンストラクトに変換できますか? 私は次のようなものを試しました
ls *.data|xargs -n1 -I FILE ./prog FILE >dir/FILE.bck
しかし、'>' の右側の FILE に問題があります。
ありがとう
私は自分がやりたいことをするbashの「forループ」を持っています
for i in *.data
do
./prog $i >dir/$i.bck
done
これを xargs コンストラクトに変換できますか? 私は次のようなものを試しました
ls *.data|xargs -n1 -I FILE ./prog FILE >dir/FILE.bck
しかし、'>' の右側の FILE に問題があります。
ありがとう
これを試してみてください(必要に応じてFILE
代わりに使用でき%
ます):
find -maxdepth 1 -name '*.data' -print0 | xargs -0 -n1 -I % sh -c './prog % > dir/%.bck'
GNU Parallel http://www.gnu.org/software/parallel/は、この種のタスク用に設計されています。
ls *.data | parallel ./prog {} '>'dir/{}.bck
IMHOこれは、提供されているxargsソリューションよりも読みやすいです。
詳細については、紹介ビデオをご覧ください: http://www.youtube.com/watch?v=OpaiGYxkSuQ