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

Raspunde prin e-mail lui