NR je v AWK proměnná, která udržuje informaci o tom, kolik záznamů (řádků) už program od začátku svého spuštění přečetl. Hodnota NR se s každým novým řádkem automaticky zvyšuje o 1.
Díky NR můžete snadno provádět operace založené na pozici řádku v souboru.
Chcete-li přidat čísla řádků k textu (podobně jako příkaz cat -n):
awk '{ print NR, $0 }' soubor.txtChcete-li vypsat pouze 10. řádek:
awk 'NR == 10' soubor.txtChcete-li vypsat řádky od 5 do 15:
awk 'NR >= 5 && NR ⇐ 15' soubor.txtPokud v rámci jednoho příkazu AWK zpracováváte více souborů, narazíte na důležitý rozdíl:
V bloku END obsahuje proměnná NR celkový počet řádků v celém vstupu. To je ideální pro statistiky:
awk 'END { print „Celkem zpracováno řádků:“, NR }' log.txt| Úkol | Příkaz |
|---|---|
| Smazat první řádek (hlavičku) | awk 'NR > 1' data.csv |
| Zpracovat pouze sudé řádky | awk 'NR % 2 == 0' soubor |
| Najít poslední řádek | awk '{ radek=$0 } END { print radek }' soubor |
Tip: NR je neocenitelný pomocník při čištění dat. Pokud víte, že prvních několik řádků exportu obsahuje nepotřebné metadatové informace, stačí použítawk 'NR > 5', čímž je efektivně odříznete.