Jak přeskočit první řádek souboru pomocí `awk`

How Skip First Line File Using Awk



V Linuxu existuje několik použití příkazu `awk`. Lze jej například použít k tisku obsahu textového souboru. První řádek mnoha textových souborů obsahuje nadpis souboru a někdy je nutné při tisku obsahu souboru přeskočit první řádek. V tomto tutoriálu vám ukážeme, jak tento úkol provést pomocí příkazu `awk`.

Vytvořte textový soubor

Chcete-li pokračovat v tomto kurzu, vytvořte textový soubor oddělený tabulátory s názvem booklist.txt s následujícím obsahem. Tento soubor obsahuje seznam knih s odpovídajícími autory. V tomto tutoriálu vám ukážeme, jak po přeskočení prvního řádku vytisknout různé části tohoto souboru.







Kybernetická bezpečnost s bash Paul Troncone, Carl Albing

Příkazový řádek Kung Fu Jason Cannon

Linux Travis Booth příkazového řádku

Bash v jednoduchých krocích Mike McGrath

Unix ve snadných krocích Mike McGrath

Příklad 1: Přeskočte první řádek souboru pomocí NR a operátoru „>“

Proměnná NR udává počet záznamů v souboru. Následující příkaz `awk` používá proměnnou NR k přeskočení prvního řádku souboru. Hodnota NR je 1 pro první řádek. Následující příkaz vytiskne řádky, pro které je hodnota NR větší než 1.



$kočkabooklist.txt

$awk '(NE> 1)'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup zahrnuje všechny řádky jiné než první řádek souboru.







Příklad 2: Přeskočte první řádek pomocí NR a operátoru ‘! =‘

Následující příkaz `awk` je podobný jako v předchozím příkladu. Místo '>' se zde však používá operátor porovnání '! ='.

$kočkabooklist.txt

$awk 'NR! = 1'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup zobrazuje všechny řádky jiné než první řádek souboru.



Příklad 3: Přeskočte první řádek souboru pomocí podmíněného příkazu

Následující příkaz `awk` vytiskne řádky souboru, pokud je příkaz if pravdivý. Zde bude příkaz if pravdivý, pouze pokud se hodnota NR nerovná 1.

$kočkabooklist.txt

$awk '{if (NR! = 1) {print}}'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup zahrnuje všechny řádky kromě prvního řádku souboru.

Příklad 4: Vytiskněte názvy knih ze souboru, ale přeskočte první řádek

V tomto příkladu jsou k vytištění všech názvů knih kromě prvního použity dva příkazy `awk`. Příkaz `awk` načte první sloupec ze souboru na základě oddělovače polí ( t) a odešle výstup do druhého příkazu` awk`. Druhý příkaz `awk` vytiskne požadovaný výstup.

$kočkabooklist.txt

$awk -F ' t' '{print $ 1}'booklist.txt| awk 'NR! = 1 tisk}'

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup zobrazuje všechny názvy knih kromě názvu první knihy.

Příklad 5: Formátujte obsah souboru po přeskočení prvního řádku

Volba „-F“, proměnná NR a funkce printf se používají v následujícím příkazu „awk“ ke generování formátovaného výstupu po přeskočení prvního řádku. Příkaz rozdělí obsah souboru do sloupců na základě t a printf vytiskne první a druhý sloupec, pokud je hodnota NR alespoň 2.

$kočkabooklist.txt

$awk -F ' t' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup ukazuje formátovaný obsah souboru, s výjimkou prvního řádku souboru.

Příklad 6: Vytiskněte názvy knih po přeskočení prvního řádku pomocí NR a NF

Následující příkaz `awk` používá volbu '-F' a NR a NF vytiskne názvy knih po přeskočení první knihy. Volba „-F“ se používá k oddělení obsahu základny souborů na t. NR slouží k přeskočení prvního řádku a NF k tisku pouze prvního sloupce.

$kočkabooklist.txt

$awk -F ' t' 'NR> 1 && NF = 1'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstup obsahuje všechny názvy knih v souboru kromě názvu první knihy.

Příklad 7: Vytiskněte formátovaná jména autorů po přeskočení prvního řádku

Následující příkaz `awk` používá možnost '-F' a podmíněné prohlášení k tisku jmen autorů po přeskočení prvního řádku. Zde je hodnota NR použita v podmínce if. Zde se místo obsahu z prvního řádku vytiskne jméno autora: n n. Jména autorů ze souboru budou vytištěna pro ostatní hodnoty NR.

$kočkabooklist.txt

$awk -F ' t' '{if (NR == 1) printf' nAutorské jméno: n n '; else printf '%s n', $ 2} 'booklist.txt

Po spuštění výše uvedených příkazů bude vytvořen následující výstup. Výstupem je text s názvem autora: s novým řádkem a vytisknou se všechna jména autorů kromě prvního.

Závěr

První řádek souboru lze přeskočit pomocí různých příkazů Linuxu. Jak ukazuje tento tutoriál, existují různé způsoby, jak přeskočit první řádek souboru pomocí příkazu `awk`. Je pozoruhodné, že proměnnou NR příkazu `awk` lze použít k přeskočení prvního řádku libovolného souboru.