[linux] BASH postupne nacitanie suboru do premennej

Matej Pivoluska pivoluska na matfyz.cz
Čtvrtek Červen 12 21:09:25 CEST 2003


Dňa Št 12. Jún 2003 20:48 Andrej Hosna napísal(a):
> > > IFS='
> > > '
> > > for i in `cat subor`; do
> > > 	echo $i;
> > > done
> > >
> > > riadky sa nacitavaju do premennej $i
> >
> > Ano, aj tak sa da, ale treba dat pozor na to, no tu treba dat pozor na
> > to, ze ak je subor dostatocne velky (>64kB tusim), zahlti BASHU buffer
> > (lebo sa najprv ho cely bash nacita, ked vyhodnoti `cat subor` a az potom
> > ho zacne prechadzat pomocou for cyklu. Pri rieseni cez while read
> > premenna taketo problemy nie su.
>
> Ano to je sice mozne ... ale skus pomocout while read spocitat kolko ma ten
> subor riadkov napriklad.

Ako sa to da spravit lepsie cez for cyklus ako cez while?

pocet=0
while read riadok; do
  pocet=$((pocet+1))
done <subor;

alebo

pocet=`wc -l subor`

mP




Další informace o konferenci linux