On 04/16/2014 07:18 PM, Nicu wrote: > 2014-04-16 18:53 GMT+03:00 Adrian Sevcenco <[email protected]>: > >>> #! /bin/bash >>> # usage: wtf_split filelist count [outfmt] >> > > >>> outfmt=${3:-dir_%04d/txt_cu_cele_Y_fisiere} >> aici nu inteleg care e scopul ... >> stiu ca ${string:position} extrage un substring la pozitia data.. >> > > Nu. In ksh/bash/etc "a=${var:-default}" e echivalent cu > > if [ -n $var ]; then > a=$var > else > a=default > fi
cool!!! oarecum similar cu ternarul ? : din c++ > deci, daca scriptul e apelat cu 3 argumente, sablonul dupa care sint > numite directoarele/fisierele o sa fie al treilea argument in loc de > "dir_%04d_bla_bla" de tinut minte smecheria :) > doar ca aici pare ca pozitia e la inceput.. sau e altceva? >> >> >>> i=0 >>> while read line; do >>> if ! (( i++ % Y )); then >> aici inteleg asha: "daca linia e cap de sub_fisier" >> > > daca numarul liniei e multiplu de Y da, am inteles >> f=`printf "$fmt" $i` >>> mkdir -p `dirname "$f"` >> se creaza directorul dir_$i ($i e %04d padded) >> >>> exec > "$f" >> si se executa ce? (cu redirectionare in fisier .. ar trebui sa fie prima >> linie) >> > > se redirectioneaza stdout-ul in "$f" fara sa se execute nimic > > >>> fi >>> echo "$line" >> astea ar trebui sa fie liniile ce fac parte din sub_fisier (si nu sunt >> cap de lista) .. cum ajung in "$f" ? >> > > pt ca stdout-ul e redirectat in "$f" inteleg ca odata redirectat ramine asa si la urmatoarele cicluri? adica de ex daca eu la inceputul unui script fac "exec > log.out" si eventual inca odata "exec 2> err.out" redirectionez descriptorii stdout si stderr pentru intreg procesul? Multumesc! Adrian
_______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
