xargs в разные файлы - PullRequest
       39

xargs в разные файлы

1 голос
/ 08 января 2011

У меня есть bash для цикла, который делает то, что я хочу

for i in *.data
do
    ./prog $i >dir/$i.bck
done

Могу ли я превратить это в конструкцию xargs? Я пробовал что-то вроде

ls *.data|xargs -n1  -I FILE ./prog FILE >dir/FILE.bck

Но у меня проблемы с правым полем FILE '>'

спасибо

Ответы [ 2 ]

3 голосов
/ 08 января 2011

Попробуйте (можно использовать FILE вместо %, если хотите):

find -maxdepth 1 -name '*.data' -print0 | xargs -0 -n1 -I % sh -c './prog % > dir/%.bck'
0 голосов
/ 10 января 2011

GNU Parallel http://www.gnu.org/software/parallel/ предназначен для такого рода задач:

ls *.data | parallel ./prog {} '>'dir/{}.bck

ИМХО, это более читабельно, чем предоставленное решение xargs.

Посмотрите вступительное видео, чтобы узнать больше: http://www.youtube.com/watch?v=OpaiGYxkSuQ

...