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,
pgpMszDJhIKAq.pgp
Description: PGP signature
_______________________________________________ Lug-bg mailing list [email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg
