nr
Obsah
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žítawk 'NR > 5', čímž je efektivně odříznete.
nr.txt · Poslední úprava: autor: admin
