Ak chceme zmenit riadok cislo, tak sa to da urobit rychlo:
read -p "Vyber cislo riadku: " number
grep "ext[2-4]" /etc/fstab | awk --assign=number="$number" '{if (NR == number) print "tak totok je prepsana radka"; else print}' #pomocou awk
grep "ext[2-4]" /etc/fstab | sed "${number}s/.*/tak toto je zmeneny riadok/" #cez sed
Na zistenie kazdej premennej spustat novy
awk na ten isty text a potom robit nahradzovanie v
bashi je dost prekomplikovane ... no ale co sa tyka
while, tak problem je s pipe-ou (
|), spusta sa novy proces a preto premennu dalej v skripte "nevidno". Ak sa v cykle nic nevypisuje, tak sa to da obist vypisanim hodnotu a priradenim celeho prikazu (
prem=$(grep| while ...)) do premennej. Druha moznost je spustit
while a presmerovat mu vstup bez pipe:
while read line
do
riadok=$line
done < <(grep "ext[2-4]" /etc/fstab)
echo $riadok #vypise posledny riadok s ext?