On Thu, Aug 31, 2006 at 02:48:51AM +0400, Alexey Tourbin wrote: > $ cat ./optimize_package_list > #!/bin/sh -ef > . tmpdir.sh > cd $TMPDIR > rpm -q --qf '[%{REQUIRENAME}\t%{NAME}\n]' -- "$@" >qR > rpm -q --qf '[%{PROVIDENAME}\t%{NAME}\n]' -- "$@" >qP > awk '{print$2,$1}' qR |sort -u -k2,2 -k1,1 -o qR > awk '{print$2,$1}' qP |sort -u -k2,2 -k1,1 -o qP > #head -v qR qP > join -j 2 -o '1.1 2.1' qR qP |sort -u >p2p > tsort p2p >tsorted || [ -s tsorted ] > #head -v p2p tsorted > set -- `cat tsorted` > for i in `seq 1 $(($#-1))`; do > eval master="\$$i" К сожалению для i>9 эта конструкция не работает. Т.е. i=$10 воспринимается шеллом как i=${1}0 и т.д. То есть скрипт может лажаться при числе аргументов 10 и более. Весь этот вложенный цикл нужно переписать на awk или на перле. :)