====== 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. [[it_encyklopedie:awk|Zpět na AWK]]