[linux] BASH postupne nacitanie suboru do premennej

Matej Pivoluska pivoluska na matfyz.cz
Čtvrtek Červen 12 18:23:30 CEST 2003


Dňa Št 12. Jún 2003 18:03 roman f.v. napísal(a):
> Zdravim,
> potreboval by som radu od nejakeho bash codera.
>
> neviem najst ziadny prikaz pre bash ani externy prikaz,
> ktorym by som docielil nasledovne:
>
>
> bash script musi nacitavat riadok za riadkom z externeho suboru do
> premennej az kym nedojde na koniec suboru. ako to docielit?
>
> diky za radu

while read riadok; do
  do_some_with $riadok
done <subor

a ak by si chcel nacitat riadok do viacerych premennych, tak to mozes docielit 
takto:
(Skript predpoklada, ze v subore subor budu ulozene "meno priezvisko" na 
kazdom riadku oddelene medzerou. Na vystup vrati prevratene 
"priezvisko, meno")

while read meno priezvisko; do
  echo "$priezvisko, $meno"
done <subor

No, este by sa asi patrilo dodat, ze oddelovac mozes nastavit cez premennu 
IFS, napr. ak chces spracovavat /etc/passwd, tak sa hodi IFS=":". Ak nie je 
dostatok vstupnych premennych, tak sa vsetko z konca riadku hodi do poslednej 
premennej. (To je napr. aj 1. pripad, kedy je posl. a jedina premenna 
$riadok, tak sa do nej ulozi vsetko.)

Papa,

mP




Další informace o konferenci linux