Príkaz „awk“ systému Linux je mocný nástroj na rôzne operácie s textovými súbormi, ako je napríklad vyhľadávanie, nahrádzanie a tlač. Používanie s tabuľkovými údajmi je jednoduché, pretože každý riadok automaticky rozdeľuje na polia alebo stĺpce na základe oddeľovača polí. Ak pracujete s textovým súborom, ktorý obsahuje tabuľkové údaje, a chcete vytlačiť údaje konkrétneho stĺpca, je najlepšou voľbou príkaz „awk“. V tomto návode si ukážeme, ako vytlačiť prvý stĺpec a / alebo posledný stĺpec riadku alebo textového súboru.
Vytlačí prvý stĺpec a / alebo posledný stĺpec výstupu príkazu
Mnoho príkazov Linux, ako napríklad príkaz „ls“, generuje tabuľkové výstupy. Tu vám ukážeme, ako vytlačiť prvý a / alebo posledný stĺpec z výstupu príkazu 'ls -l'.
Príklad 1: Tlač prvého stĺpca výstupu príkazu
Nasledujúci príkaz „awk“ vytlačí prvý stĺpec z výstupu príkazu „ls -l“.
$ ls -l$ ls -l | awk 'print $ 1'
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup.
Príklad 2: Vytlačte posledný stĺpec výstupu príkazu
Nasledujúci príkaz „awk“ vytlačí posledný stĺpec z výstupu príkazu „ls -l“.
$ ls -l$ ls -l | awk 'print $ NF'
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup.
Príklad 3: Tlač prvého a posledného stĺpca výstupu príkazu
Nasledujúci príkaz „awk“ vytlačí prvý a posledný stĺpec z výstupu príkazu „ls -l“.
$ ls -l$ ls -l | awk 'print $ 1, $ NF'
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup.
Vytlačte prvý stĺpec a / alebo posledný stĺpec textového súboru
Tu vám ukážeme, ako pomocou príkazu „awk“ vytlačiť prvý stĺpec a / alebo posledný stĺpec textového súboru.
Vytvorte textový súbor
Ak chcete pokračovať v tejto príručke, vytvorte textový súbor s názvom zákazníkov.TXT s nasledujúcim obsahom. Súbor obsahuje tri typy údajov o zákazníkoch: meno s ID, e-mail a telefónne číslo. Na oddelenie týchto hodnôt sa používa znak tabulátora (\ t).
Meno E-mail TelefónJonathon Bing - 1001 [chránený e-mailom] 01967456323
Micheal Jackson - 2006 [chránený e-mailom] 01756235643
Janifer Lopez - 3029 [chránený e-mailom] 01822347865
John Abraham - 4235 j [chránený e-mailom] 01590078452
Mir Sabbir - 2756 [chránený e-mailom] 01189523978
Príklad 4: Vytlačte prvý stĺpec súboru bez použitia oddeľovača polí
Ak sa v príkaze „awk“ nepoužíva žiadny oddeľovač polí, použije sa ako predvolený oddeľovač polí medzera. Nasledujúci príkaz „awk“ vytlačí prvý stĺpec pomocou predvoleného oddeľovača.
$ mačacích zákazníkov.TXTZákazníci $ awk 'print $ 1'.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Upozorňujeme, že výstup zobrazuje iba krstné meno zákazníka, pretože medzera sa používa ako oddeľovač polí. Riešenie tohto problému je uvedené v nasledujúcom príklade.
Príklad 5: Vytlačte prvý stĺpec súboru s oddeľovačom
Tu sa \ t používa ako oddeľovač polí na tlač prvého stĺpca súboru. Voľba '-F' sa používa na nastavenie oddeľovača polí.
$ mačacích zákazníkov.TXT$ awk -F '\ t' tlačiť $ 1 'zákazníkov.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Obsah súboru je rozdelený do troch stĺpcov na základe \ t. Preto sa meno a ID zákazníka vytlačí ako prvý stĺpec. Ak chcete vytlačiť meno zákazníka bez ID, pokračujte ďalším príkladom.
Ak chcete vytlačiť meno zákazníka bez identifikačného čísla, musíte ako oddeľovač polí použiť znak „-“. Nasledujúci príkaz „awk“ vytlačí meno zákazníka iba ako prvý stĺpec.
$ awk -F '-' 'print $ 1' zákazníci.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup obsahuje celé mená zákazníkov bez ich identifikačných údajov.
Príklad 6: Vytlačte posledný stĺpec súboru
Nasledujúci príkaz „awk“ vytlačí posledný stĺpec zákazníkov.TXT. Pretože v príkaze nie je použitý oddeľovač polí, bude sa priestor používať ako oddeľovač polí.
$ mačacích zákazníkov.TXTZákazníci $ awk 'print $ NF'.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Posledný stĺpec obsahuje telefónne čísla, ako je uvedené vo výstupe.
Príklad 7: Tlač prvého a posledného stĺpca súboru
Nasledujúci príkaz „awk“ vytlačí prvý a posledný stĺpec zákazníkov.TXT. Tu sa karta (\ t) používa ako oddeľovač polí na rozdelenie obsahu do stĺpcov. Tu sa karta (\ t) používa ako oddeľovač výstupu.
$ mačacích zákazníkov.TXT$ awk -F "\ t" 'tlačiť $ 1 "\ t" $ NF' zákazníkov.TXT
Po vykonaní vyššie uvedených príkazov sa objaví nasledujúci výstup. Obsah je rozdelený do troch stĺpcov \ t; prvý stĺpec obsahuje meno a identifikačné číslo zákazníka a druhý stĺpec obsahuje telefónne číslo. Prvý a posledný stĺpec sa vytlačí pomocou \ t ako oddeľovača.
Záver
Príkaz 'awk' je možné použiť rôznymi spôsobmi na získanie prvého stĺpca a / alebo posledného stĺpca z ľubovoľného výstupu príkazu alebo z tabuľkových údajov. Je dôležité si uvedomiť, že v príkaze je vyžadovaný oddeľovač polí, a ak nie je zadaný, použije sa medzera.