NR (Number of Records)

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.

1. Základní použití

Díky NR můžete snadno provádět operace založené na pozici řádku v souboru.

Očíslování řádků

Chcete-li přidat čísla řádků k textu (podobně jako příkaz cat -n):

awk '{ print NR, $0 }' soubor.txt

Výpis konkrétního řádku

Chcete-li vypsat pouze 10. řádek:

awk 'NR == 10' soubor.txt

Výpis rozsahu řádků

Chcete-li vypsat řádky od 5 do 15:

awk 'NR >= 5 && NR ⇐ 15' soubor.txt

2. Rozdíl mezi NR a FNR

Pokud v rámci jednoho příkazu AWK zpracováváte více souborů, narazíte na důležitý rozdíl:

NR (Number of Records): Globální čítač. Po skončení prvního souboru pokračuje v číslování dál (např. pokud má první soubor 10 řádků, první řádek druhého souboru bude mít NR 11).

FNR (File Number of Records): Lokální čítač pro každý soubor. Na začátku každého nového souboru se resetuje na 1.

3. Použití v bloku END

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

4. Praktické příklady

Ú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žít awk 'NR > 5' , čímž je efektivně odříznete.

Zpět na AWK