Re: [Lug-bg] Въпрос за bash скриптче.
- Subject: Re: [Lug-bg] Въпрос за bash скриптче.
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Tue, 9 Jun 2009 13:27:25 +0300
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 roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
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:
pgpKHoNOIvbdw.pgp
Description: PGP signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|