On Saturday 21 July 2007 13:17:21 Mihai Dobre wrote:
> On Saturday 21 July 2007 12:48, Andrei-Florian Staicu wrote:
> > Salut
> >
> > Am un fisier de forma
> > a  11
> > bb 1
> > c  222
> >
> > pe care vreau sa-l folosesc intr-un script bash.
> > Ideea e ca intre a si 11 sunt doi delimitatori, pe cand intre bb si 1
> > doar unul singur.
> > Imi puteti spune cum pot sa separ valorile?
>
> Awk ?
>
> echo 'a  11' > /tmp/test.txt
> echo 'bb 1' >> /tmp/test.txt
> echo 'cc     22' >> /tmp/test.txt
>
> cat /tmp/test.txt|awk '{print $1,$2}'
> a 11
> bb 1
> cc 22
> --
>  cat /tmp/test.txt|awk '{print $2}'
> 11
> 1
> 22

E inutil sa folosesti "cat | awk" la fel cum e inutil sa folosesti "cat | 
grep", "cat | whatever" atata timp cat <whatever> stie el foarte bine sa isi 
ia inputul dintr-un fisier.

Adica, in loc de: 

  cat fisier | awk '{print $1 $2}'

foloseste cu incredere

  awk '{print $1 $2}' fisier


Iar ca o solutie alternativa, se pot folosi direct din bash valorile fara a 
apela la vreo unealta externa:

while read line; do

    set -- $line
    echo "Parametrul 1: $1, parametrul 2: $2"

done < /path/to/file


Mihai

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

Raspunde prin e-mail lui