Příkaz 'awk' v Linuxu je výkonný nástroj pro různé operace s textovými soubory, jako je vyhledávání, nahrazování a tisk. S tabulkovými daty se snadno používá, protože každý řádek automaticky rozděluje na pole nebo sloupce na základě oddělovače polí. Pokud pracujete s textovým souborem, který obsahuje tabulková data, a chcete tisknout data konkrétního sloupce, je nejlepší volbou příkaz 'awk'. V tomto tutoriálu vám ukážeme, jak vytisknout první sloupec a / nebo poslední sloupec řádku nebo textového souboru.
Vytiskněte první sloupec a / nebo poslední sloupec výstupu příkazu
Mnoho příkazů Linuxu, například příkaz 'ls', generuje tabulkové výstupy. Zde vám ukážeme, jak vytisknout první sloupec a / nebo poslední sloupec z výstupu příkazu 'ls -l'.
Příklad 1: Tisk prvního sloupce výstupu příkazu
Následující příkaz 'awk' vytiskne první sloupec z výstupu příkazu 'ls -l'.
$ ls -l$ ls -l | awk 'print $ 1'
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Příklad 2: Tisk posledního sloupce výstupu příkazu
Následující příkaz 'awk' vytiskne poslední sloupec z výstupu příkazu 'ls -l'.
$ ls -l$ ls -l | awk 'print $ NF'
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Příklad 3: Tisk prvního a posledního sloupce výstupu příkazu
Následující příkaz 'awk' vytiskne první a poslední sloupec z výstupu příkazu 'ls -l'.
$ ls -l$ ls -l | awk 'print $ 1, $ NF'
Následující výstup bude vytvořen po spuštění výše uvedených příkazů.
Vytiskněte první sloupec a / nebo poslední sloupec textového souboru
Zde vám ukážeme, jak pomocí příkazu 'awk' vytisknout první sloupec a / nebo poslední sloupec textového souboru.
Vytvořte textový soubor
Chcete-li pokračovat v tomto kurzu, vytvořte textový soubor s názvem zákazníky.txt s následujícím obsahem. Soubor obsahuje tři typy údajů o zákaznících: jméno s ID, e-mail a telefonní číslo. K oddělení těchto hodnot se používá znak tabulátoru (\ t).
Jméno E-mail TelefonJonathon Bing - 1001 [chráněno e-mailem] 01967456323
Micheal Jackson - 2006 [chráněno e-mailem] 01756235643
Janifer Lopez - 3029 [chráněno e-mailem] 01822347865
John Abraham - 4235 j [chráněno e-mailem] 01590078452
Mir Sabbir - 2756 [chráněno e-mailem] 01189523978
Příklad 4: Tisk prvního sloupce souboru bez použití oddělovače polí
Pokud se v příkazu 'awk' nepoužívá žádný oddělovač polí, použije se jako výchozí oddělovač polí mezera. Následující příkaz 'awk' vytiskne první sloupec pomocí výchozího oddělovače.
$ kočičí zákazníci.txt$ awk 'print $ 1' zákazníci.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Všimněte si, že výstup zobrazuje pouze křestní jméno zákazníka, protože mezera je použita jako oddělovač pole. Řešení tohoto problému je uvedeno v následujícím příkladu.
Příklad 5: Tisk prvního sloupce souboru s oddělovačem
Zde se \ t používá jako oddělovač polí k tisku prvního sloupce souboru. Možnost '-F' se používá k nastavení oddělovače polí.
$ kočičí zákazníci.txt$ awk -F '\ t' tisk $ 1 'zákazníků.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Obsah souboru je rozdělen do tří sloupců na základě \ t. Proto se jako první sloupec vytiskne jméno a ID zákazníka. Pokud chcete vytisknout jméno zákazníka bez ID, pokračujte dalším příkladem.
Pokud chcete vytisknout jméno zákazníka bez ID, musíte jako oddělovač polí použít znak „-“. Následující příkaz 'awk' vytiskne jméno zákazníka pouze jako první sloupec.
$ awk -F '-' 'print $ 1' zákazníci.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup zahrnuje celá jména zákazníků bez jejich ID.
Příklad 6: Tisk posledního sloupce souboru
Následující příkaz 'awk' vytiskne poslední sloupec zákazníků.txt. Protože v příkazu není použit žádný oddělovač polí, bude mezera použita jako oddělovač polí.
$ kočičí zákazníci.txtZákazníci $ awk 'print $ NF'.txt
Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Poslední sloupec obsahuje telefonní čísla, jak je znázorněno na výstupu.
Příklad 7: Tisk prvního a posledního sloupce souboru
Následující příkaz 'awk' vytiskne první a poslední sloupec zákazníků.txt. Tady se tab (\ t) používá jako oddělovač polí k rozdělení obsahu do sloupců. Zde se jako oddělovač výstupu používá karta (\ t).
$ kočičí zákazníci.txt$ awk -F "\ t" 'tisknout $ 1 "\ t" $ NF' zákazníků.txt
Po spuštění výše uvedených příkazů se zobrazí následující výstup. Obsah je rozdělen do tří sloupců \ t; první sloupec obsahuje jméno a ID zákazníka a druhý sloupec obsahuje telefonní číslo. První a poslední sloupec se vytiskne pomocí \ t jako oddělovače.
Závěr
Příkaz 'awk' lze použít různými způsoby k získání prvního sloupce a / nebo posledního sloupce z libovolného výstupu příkazu nebo z tabulkových dat. Je důležité si uvědomit, že v příkazu je vyžadován oddělovač polí, a pokud není zadán, použije se mezera.