On Tue, Jun 09, 2009 at 12:55:44PM +0300, Damyan Ivanov wrote:
> -=| Kristian Kirilov, Tue, Jun 09, 2009 at 12:35:00PM +0300 |=-
> > Здравейте, имам следния резултат
> > 
> > 5001 1001
> > 4001 1002
> > 5002 102
> > 5003 1032
> > 5004 1011
> > 121 1000
> > 12345 1008
> > 1234 1010
> > 
> > В този случай как мога да направя условие което да сравнява първата 
> > колона с числото 5000, и тя го надвишава числото от 2-рата колона на 
> > същия ред да се запише в произволен файл.
> > 
> > Т.е. изхода трябва да излгежда нещо от сорта:
> > 
> > 1001
> > 102
> > 1032
> > 1011
> > 1008
> 
> ---------------------------
> #!/bin/sh
> 
> while read a b; do
>     if [ $a -gt 5000 ]; then
>         echo $b
>     fi
> fi

Или, разбира се,

awk '$1 > 5000 {print $2}' infile.txt > outfile.txt

Естествено, има и други варианти :)

perl -nle 'split; print $_[1] if $_[0] > 5000' infile.txt > outfile.txt

А иначе, бих препоръчал при решението на Дамян все пак да се сложат
кавички около използването на "$a" и "$b" в тялото на цикъла, че да
не скимти твърде много при погрешни данни :)

while read a b; do
    if [ "$a" -gt 5000 ]; then
        echo "$b"
    fi
fi


Поздрави,
Петър

-- 
Peter Pentchev  [email protected]    [email protected]    [email protected]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
If I had finished this sentence,

Attachment: pgpMszDJhIKAq.pgp
Description: PGP signature

_______________________________________________
Lug-bg mailing list
[email protected]
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to