Awk

Cum se analizează fișierul delimitat de tab-uri folosind „awk”

Cum se analizează fișierul delimitat de tab-uri folosind „awk”

„tab” este utilizat ca separator în fișierul delimitat de tab-uri. Acest tip de fișier text este creat pentru a stoca diferite tipuri de date text într-un format structurat.  Există diferite tipuri de comenzi în Linux pentru a analiza acest tip de fișier.  Comanda „awk” este una dintre modalitățile de a analiza fișierul delimitat de tab-uri în moduri diferite. Utilizările comenzii „awk” pentru a citi fișierul delimitat de tab-uri s-au arătat în acest tutorial.

Creați un fișier delimitat de tab-uri:

Creați un fișier text numit utilizatori.txt cu următorul conținut pentru a testa comenzile acestui tutorial. Acest fișier conține numele utilizatorului, adresa de e-mail, numele de utilizator și parola.

utilizatori.txt

Nume Email Nume utilizator Parolă
Md. Robin [email protected] robin89 563425
Nila Hasan [e-mail protejat] nila78 245667
Mirza Abbas [e-mail protejat] mirza23 534788
Aornob Hasan [e-mail protejat] arnob45 778473
Nuhas Ahsan [e-mail protejat] nuhas34 563452

Exemplu-1: Imprimați a doua coloană a unui fișier delimitat de tab-uri utilizând opțiunea -F

Următoarea comandă „sed” va imprima a doua coloană a unui fișier text delimitat de tab-uri. Aici „-F” opțiunea este utilizată pentru a defini separatorul de câmp al fișierului.

$ cat utilizatori.txt
$ awk -F '\ t' 'print $ 2' utilizatori.txt

Următoarea ieșire va apărea după executarea comenzilor. A doua coloană a fișierului conține adresele de e-mail ale utilizatorului, care sunt afișate ca ieșire.

Exemplu-2: Imprimați prima coloană a unui fișier delimitat de tab-uri utilizând variabila FS

Următoarea comandă „sed” va imprima prima coloană a unui fișier text delimitat de tab-uri. Aici, FS Variabila (Separator de câmp) este utilizată pentru a defini separatorul de câmp al fișierului.

$ cat utilizatori.txt
$ awk 'print $ 1' FS = '\ t' utilizatori.txt

Următoarea ieșire va apărea după executarea comenzilor. Prima coloană a fișierului conține numele utilizatorului, care sunt afișate ca ieșire.

Exemplu-3: Imprimați a treia coloană a unui fișier delimitat de tab-uri cu formatare

Următoarea comandă „sed” va imprima a treia coloană a fișierului text delimitat de tab-uri cu formatare folosind FS variabilă și printf. Aici FS variabila este utilizată pentru a defini separatorul de câmp al fișierului.

$ cat utilizatori.txt
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3' utilizatori.txt

Următoarea ieșire va apărea după executarea comenzilor. A treia coloană a fișierului conține numele de utilizator care a fost tipărit aici.

Exemplu-4: Imprimați a treia și a patra coloană a fișierului delimitat de tab-uri utilizând OFS

OFS (Output Field Separator) este utilizat pentru a adăuga un separator de câmp în ieșire. Următoarea comandă „awk” va împărți conținutul fișierului pe baza separatorului tab (\ t) și va imprima a 3-a și a 4-a coloană folosind fila (\ t) ca separator.

$ cat utilizatori.txt
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("output.txt ") 'utilizatori.txt
$ cat output.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Cea de-a 3-a și a 4-a coloană conțin numele de utilizator și parola, care au fost tipărite aici.

Exemplu-5: Înlocuiți conținutul particular al fișierului delimitat de tab-uri

funcția sub () este utilizată în 'awk pentru a comanda înlocuirea. Următoarea comandă „awk” va căuta numărul 45 și va înlocui cu numărul 90 dacă numărul de căutare există în fișier. După înlocuire, conținutul fișierului va fi stocat în ieșire.fișier txt.

$ cat utilizatori.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' utilizatori.txt> ieșire.txt
$ cat output.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Ieșirea.fișierul txt arată conținutul modificat după aplicarea substituției. Aici, conținutul celei de-a cincea linii s-a modificat, iar „arnob45” este schimbat în „arnob90”.

Exemplu-6: Adăugați șir la începutul fiecărei linii a unui fișier delimitat de tab-uri

În continuare, comanda „awk”, opțiunea „-F” este utilizată pentru a împărți conținutul fișierului pe baza filei (\ t). OFS a folosit pentru a adăuga o virgulă (,) ca separator de câmp în ieșire. funcția sub () este utilizată pentru a adăuga șirul '- →' la începutul fiecărei linii a ieșirii.

$ cat utilizatori.txt
$ awk -F "\ t" 'OFS = ","; sub (/ ^ /, "---->"); tipăriți utilizatorilor $ 1, $ 2, $ 3.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Fiecare valoare de câmp este separată prin virgulă (,) și se adaugă un șir la începutul fiecărei linii.

Exemplul-7: Înlocuiți valoarea unui fișier delimitat de tab-uri utilizând funcția gsub ()

Funcția gsub () este utilizată în comanda „awk” pentru substituire globală. Toate valorile șirului fișierului vor înlocui acolo unde se potrivește modelul de căutare. Diferența principală între funcțiile sub () și gsub () este că funcția sub () oprește sarcina de substituție după ce a găsit prima potrivire, iar funcția gsub () caută modelul de la sfârșitul fișierului pentru substituire. Următoarea comandă „awk” va căuta cuvântul „nila” și „Mira” la nivel global în fișier și va înlocui toate aparițiile cu textul, „Nume nevalid”, unde cuvântul de căutare se potrivește.

$ cat utilizatori.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Nume nevalid"); print 'utilizatori.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Cuvântul „nila” există de două ori în a treia linie a fișierului care a fost înlocuit cu cuvântul „Nume nevalid” în ieșire.

Exemplu-8: tipăriți conținutul formatat dintr-un fișier delimitat de tab-uri

Următoarea comandă „awk” va imprima prima și a doua coloane ale fișierului cu formatare utilizând printf. Ieșirea va afișa numele utilizatorului prin încadrarea adresei de e-mail între paranteze.

$ cat utilizatori.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' utilizatori.txt

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Concluzie

Orice fișier delimitat de file poate fi analizat cu ușurință și tipărit cu un alt delimitator utilizând comanda „awk”. Modalitățile de analiză a fișierelor delimitate de tab-uri și de tipărire în diferite formate s-au arătat în acest tutorial utilizând mai multe exemple. Utilizările funcțiilor sub () și gsub () din comanda „awk” pentru înlocuirea conținutului fișierului delimitat de tabulă sunt explicate și în acest tutorial. Sper că acest tutorial va ajuta cititorii să analizeze cu ușurință fișierul delimitat de tab-uri după ce au practicat corect exemplele acestui tutorial.

Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...