On 04/16/2014 04:12 PM, tiberiu socaciu wrote:
> anticarcel:
> 
> socaciu@A102-LNX:~/carcel$ cat scr
> #! /bin/bash
> fisierdefisiere="fisierulcufisiere"
> Y=300
> prefix="dir_"
> 
> function genereaza
> {
> rm -f $fisierdefisiere
> for i in `seq 1 1000`; do
>   date > fisier$i
>   echo fisier$i >> $fisierdefisiere
> done
> }
> 
> function imparte
> {
> l=0
> cat $fisierdefisiere | while read f ; do
>   l=$[$l+1]
>   d=$[$l/$Y]
>   echo procesez $f in directorul $prefix$d
>   # aici bagi mutarea, clonarea sau ce mai vrei tu
> done
> }
Multumesc tuturor pentru raspunsuri! Din fiecare am de invatat cite
ceva!

Din categoria "twho hands face slap" face parte existenta comenzii split
:D (multumesc Bogdan BOTEZ)
Din categoria "both hands scratching head" exemplul lui Nicu cu fmt :)

La exemplul tau Tiberiu nu am inteles cum ar functiona bucla ...
(ai l care da numarul liniei la care esti; d e numarul de fisiere (la
care ar trebui +1 pentru a lua in calcul restul impartirii))
Nu am inteles cum se selecteaza Y linii odata pentru a se baga in
fisierul din $prefix$d  si pe urma sa se continue cu urmatorul batch.

Ca sa nu par ca nu am facut nimic, intre timp am gasit si eu o solutie:

NR_FILES=`cat $DATA_FILE | wc -l`
NR_JOBS=$(( $NR_FILES/$JOBS_PACK + 1 ))

JOB_NEXT=1

for ((idx=1; idx <= NR_JOBS ; idx++))
{
  mkdir -p $DIR_JOBS/job_$idx

  tail -n +$JOB_NEXT $DATA_FILE | head -n $JOBS_PACK > $SUBJOB_DIR/data.txt

  ## job number
  (( JOB_NEXT += JOBS_PACK ))
}

Multumesc frumos tuturor!!
Adrian

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui