Predstavte si, že máte niekoľko gigabajtový vstupný súbor subor.txt, v ktorom chcete vypísať prvé 4 riadky. V dôsledku toho, že sed číta štandardne celé súbory, dostaneme veľmi zlú výkonnosť skriptu:
$ sed -n '1,4p' subor.txt
Namiesto toho by sme mali ukončiť prevádzanie programu sed hneď po prečítaní prvých dvoch riadkov. Uvádzam riešenie aj pre sed aj pre awk:
$ sed '4q' subor.txt
$ awk 'NR==5{exit;}1' subor.txt
UNIX SHELL je skriptovací jazyk. Je to ale interpretovaný jazyk, preto preferujte vstavané príkazy. Interné príkazy (napr. echo) sú také príkazy, ktoré SHELL spúšťa bez vytváranie podprocesu, pričom pri spúšťaní externých príkazov (napr. expr) sa vytvára podporces SHELLu.
UNIX shell skvele pracuje zo súbormi. Netreba to však zneužívať tým, že budeme zbytočne postupne pripisovať údaje do veľkého súboru. Napr. cyklus
while [podmienka]
do
echo x >> subor.txt
done
sa dá prepísať na
while [podmienka]
do
echo x
done > subor.txt
čím ušetríte značné množstvo prostriedkov. Namiesto toho, aby bol výpis realizovaný n-krát, bude realizovaný iba raz na konci cyklu while.
To znamená, že všetky príkazy, ktoré môžu ísť mimo cyklu, nebudú v cykle nikde použité. Ako príklad si predstavte, že kontrolujete dátum. Výpočet dátumu by ste mali realizovať ešte pred behom skriptu a nemali by ste ho počítať v behu skriptu.