Awk

Cum se imprimă prima coloană sau ultima coloană sau ambele folosind „awk”

Cum se imprimă prima coloană sau ultima coloană sau ambele folosind „awk”

Comanda „awk” a lui Linux este un utilitar puternic pentru diferite operațiuni pe fișiere text, cum ar fi căutarea, înlocuirea și tipărirea. Este ușor de utilizat cu date tabulare, deoarece împarte automat fiecare linie în câmpuri sau coloane pe baza separatorului de câmpuri. Când lucrați cu un fișier text care conține date tabulare și doriți să imprimați datele unei anumite coloane, atunci comanda „awk” este cea mai bună opțiune. În acest tutorial, vă vom arăta cum să imprimați prima coloană și / sau ultima coloană a unui rând sau fișier text.

Imprimați prima coloană și / sau ultima coloană a unei ieșiri de comandă

Multe comenzi Linux, cum ar fi comanda "ls", generează ieșiri tabulare. Aici, vă vom arăta cum să imprimați prima coloană și / sau ultima coloană din ieșirea comenzii 'ls -l'.

Exemplul 1: Imprimați prima coloană a unei ieșiri de comandă

Următoarea comandă „awk” va imprima prima coloană din ieșirea comenzii „ls -l”.

$ ls -l
$ ls -l | awk 'print $ 1'

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Exemplul 2: Imprimați ultima coloană a unei ieșiri de comandă

Următoarea comandă „awk” va imprima ultima coloană din ieșirea comenzii „ls -l”.

$ ls -l
$ ls -l | awk 'print $ NF'

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Exemplul 3: Imprimați prima și ultima coloane ale unei ieșiri de comandă

Următoarea comandă „awk” va imprima prima și ultima coloană din ieșirea comenzii „ls -l”.

$ ls -l
$ ls -l | awk 'print $ 1, $ NF'

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Imprimați prima coloană și / sau ultima coloană a unui fișier text

Aici, vă vom arăta cum să utilizați comanda „awk” pentru a imprima prima coloană și / sau ultima coloană a unui fișier text.

Creați un fișier text

Pentru a urma împreună cu acest tutorial, creați un fișier text numit Clienți.txt cu următorul conținut. Fișierul conține trei tipuri de date despre clienți: numele cu ID-ul, adresa de e-mail și numărul de telefon. Caracterul tabului (\ t) este utilizat pentru a separa aceste valori.

Nume e-mail telefon
Jonathon Bing - 1001 [e-mail protejat] 01967456323
Micheal Jackson - 2006 [e-mail protejat] 01756235643
Janifer Lopez - 3029 [e-mail protejat] 01822347865
John Abraham - 4235 j [email protected] 01590078452
Mir Sabbir - 2756 [email protected] 01189523978

Exemplul 4: Imprimați prima coloană a unui fișier fără a utiliza un separator de câmpuri

Dacă nu este utilizat niciun separator de câmp în comanda „awk”, atunci se folosește un spațiu ca separator de câmp implicit. Următoarea comandă „awk” va imprima prima coloană utilizând separatorul implicit.

$ cat clienți.txt
Clienții $ awk „print $ 1”.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Rețineți că rezultatul afișează doar prenumele clientului, deoarece spațiul este aplicat ca separator de câmp. Soluția la această problemă este prezentată în exemplul următor.

Exemplul 5: Imprimați prima coloană a unui fișier cu un delimitator

Aici, \ t este folosit ca separator de câmp pentru a imprima prima coloană a fișierului. Opțiunea „-F” este utilizată pentru a seta separatorul de câmp.

$ cat clienți.txt
$ awk -F '\ t' 'print $ 1' clienți.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Conținutul fișierului este împărțit în trei coloane bazate pe \ t. Prin urmare, numele și ID-ul clientului sunt tipărite ca prima coloană. Dacă doriți să imprimați numele clientului fără ID-ul, continuați cu exemplul următor.


Dacă doriți să imprimați numele clientului fără ID-ul, atunci trebuie să utilizați „-” ca separator de câmp. Următoarea comandă „awk” va imprima numele clientului doar ca prima coloană.

$ cat clienți.txt
$ awk -F '-' 'print $ 1' clienți.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Rezultatul include numele complete ale clienților fără ID-urile lor.

Exemplul 6: Imprimați ultima coloană a unui fișier

Următoarea comandă „awk” va imprima ultima coloană de clienți.txt. Deoarece nu este utilizat niciun separator de câmp în comandă, spațiul va fi folosit ca separator de câmp.

$ cat clienți.txt
Clienții $ awk „print $ NF”.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus. Ultima coloană conține numere de telefon, așa cum se arată în rezultat.

Exemplul 7: Imprimați prima și ultima coloană ale unui fișier

Următoarea comandă „awk” va imprima prima și ultima coloană a clienților.txt. Aici, fila (\ t) este utilizată ca separator de câmp pentru a împărți conținutul în coloane. Aici, fila (\ t) este utilizată ca separator pentru ieșire.

$ cat clienți.txt
$ awk -F "\ t" 'print $ 1 "\ t" $ NF' clients.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Conținutul este împărțit în trei coloane cu \ t; prima coloană conține numele și ID-ul clientului, iar a doua coloană conține numărul de telefon. Prima și ultima coloană sunt tipărite utilizând \ t ca separator.

Concluzie

Comanda „awk” poate fi aplicată în diferite moduri pentru a obține prima coloană și / sau ultima coloană din orice ieșire de comandă sau din date tabulare. Este important să rețineți că este necesar un separator de câmp în comandă și, dacă nu este prevăzut unul, atunci este utilizat spațiul.

Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...