On Sat, 2003-11-29 at 17:30, Linux User wrote: > Hi Cristi, > > Faci o confuzie. Cel care a lansat thread-ul sunt eu, Alex. Cel care a > raspuns cu print awk este Radu. > > Cel care a raspuns ca varianta data de tine nu functioneaza .....sunt eu, > Alex si nu Radu, asa cum probabil ai crezut.... :-)
Um... Nu? :-) Am dat reply-ul pentru Radu in reply-ul catre tine pentru ca... Radu nu a postat pe lista. > De ce nu functioneaza? Pentru ca printeaza un "a". > > Confuzia in raspunsul tau a pornit probabil din faptul ca eu am scris > x="aaaaa bbbbb" > in loc sa scriu > x="string1 string2" > unde string1 si string2 nu au nimic de-aface cu "aaaaa" sau "bbbbb". > Sau poate "aaaaa" si "bbbbb" sa fie cazuri particulare, dar asta e cu totul > altceva. [EMAIL PROTECTED]:~$ a=$(echo -e 'string1\tstring2' | cut -f1) [EMAIL PROTECTED]:~$ b=$(echo -e 'string1\tstring2' | cut -f2) [EMAIL PROTECTED]:~$ echo $a - $b string1 - string2 Deci, nu stiu ce faci tu gresit, dar la mine merge. > De aici raspunsul meu vizavi de solutia ta. Este si greseala mea pentru ca nu > am fost mai clar in formularea problemei. De fapt, problema mea era mult mai > complexa (doream sa fac, o optimizare a unui script bash) iar ce a fost dat > pe lista era strict ceea ce ramasese nerezolvat. Si pentru ca ai deschis > discutia despre optimizare (ma bucur ca sunt admini care au gindire de > programatori si se gindesc si la acest aspect cind scriu cod), si datorita > faptului ca asta a fost si scopul NEDECLARAT pentru care am deschis acest > thread, uite un exemplu de cod scris aiurea. > > y=$(cat $TMPFILE|grep ceva | cut -f 1); > z=$(cat $TMPFILE|grep ceva | cut -f 2); > > si in final se obtine y="string1" si z="string2" > > Dupa cum se poate vedea din ce este scris mai sus, procedura este greoaie, si > destul de heavy pentru proc (se fac 2 cat-uri, 2 grep-uri si 2 cut-uri pe un > TMPFILE FOARTE MARE, si chestia asta este intr-un ciclu, care se repeta > pentru fiecare linie din fisierul $TMPFILE - de zeci de mii de ori). Asa ca, > am dorit sa elimin chestiile putrede. Primul lucru care l-am facut a fost sa > fac un singur cat, de ex: x=$(cat $TMPFILE| sed -n $k\p) (deci sa scot linia > care ma intereseaza, facind numai 2 operatii - UN SINGUR cat si sed) iar apoi > sa procesez CIT MAI SIMPLU pe $x astfel incit sa-mi rezulte in 2 variabile, > string1 si string2. Daca se executa pentru fiecare linie din $TMPFILE, de ce trebuie sa faci cat | grep, sau cat | sed si nu ai linia intr-o variabila? Context, give me context! By the way, nu se face cat file | grep stuff , ci grep stuff file, nu cat file | sed script, ci sed script file. Idem pentru 99.9% din utilitare. -- Birzan George Violence is the last refuge of Cristian the incompetent -- Salvor Hardin --- Detalii despre listele noastre de mail: http://www.lug.ro/
