Páni

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

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

Příkaz 'awk' v Linuxu existuje různá použití. Lze jej například použít k tisku obsahu textového souboru. První řádek mnoha textových souborů obsahuje záhlaví souboru a někdy musí být první řádek při tisku obsahu souboru přeskočen. V tomto kurzu vám ukážeme, jak splnit tento úkol pomocí příkazu 'awk'.

Vytvořte textový soubor

Chcete-li pokračovat v tomto kurzu, vytvořte textový soubor s názvem odděleným tabulátory seznam knih.txt s následujícím obsahem. Tento soubor obsahuje seznam knih s odpovídajícími autory. V tomto kurzu vám ukážeme, jak po vynechání 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
Linuxový příkazový řádek Travis Booth
Bash v jednoduchých krocích Mike McGrath
Unix v jednoduchý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.

$ cat booklist.txt
Seznam knih $ awk '(NR> 1).txt

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

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

Následující příkaz 'awk' je podobný příkazu v předchozím příkladu. Avšak „!= 'místo'> 'je zde použit operátor porovnání.

$ cat booklist.txt
$ awk 'NR!= 1 'seznam knih.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. 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 když hodnota NR nebude rovna 1.

$ cat booklist.txt
$ awk 'if (NR!= 1) Seznam knih print.txt

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

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

V tomto příkladu se k tisku všech názvů knih kromě prvního používají 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.

$ cat booklist.txt
$ awk -F "\ t" 'print $ 1' seznam knih.txt | awk 'NR!= 1 tisk '

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

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

Možnost '-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ů založených na \ t a printf vytiskne první a druhý sloupec, když je hodnota NR alespoň 2.

$ cat booklist.txt
$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' seznam knih.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup zobrazuje 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 k tisku jmen knih po přeskočení první knihy. Možnost '-F' se používá k oddělení obsahu základny souborů na \ t. NR se používá k přeskočení prvního řádku a NF se používá k tisku pouze prvního sloupce.

$ cat booklist.txt
$ awk -F '\ t' 'NR> 1 && NF = 1' seznam knih.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup zahrnuje všechny názvy knih v souboru, kromě těch, které byly uvedeny v první knize.

Příklad 7: Tisknout 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ý příkaz k tisku jmen autorů po přeskočení prvního řádku. Zde se hodnota NR použije v podmínce if. Zde se jako první řádek namísto obsahu z prvního řádku vytiskne „Jméno autora: \ n \ n“. Pro ostatní hodnoty NR budou vytištěna jména autorů ze souboru.

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

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup zobrazuje text „Jméno autora:“ s novým řádkem a všechna jména autorů jsou vytištěna kromě prvního.

Závěr

První řádek souboru lze přeskočit pomocí různých příkazů systému Linux. Jak je ukázáno v tomto kurzu, 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.

Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...
WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...