Linuxova naredba "awk" moćan je uslužni program za različite operacije nad tekstualnim datotekama, poput pretraživanja, zamjene i ispisa. Jednostavan je za uporabu s tabličnim podacima jer automatski dijeli svaki redak u polja ili stupce na temelju separatora polja. Kada radite s tekstualnom datotekom koja sadrži tablične podatke i želite ispisati podatke određenog stupca, tada je najbolja opcija naredba 'awk'. U ovom uputstvu pokazat ćemo vam kako ispisati prvi stupac i / ili zadnji stupac retka ili tekstualne datoteke.
Ispišite prvi stupac i / ili zadnji stupac izlaza naredbe
Mnoge Linux naredbe poput naredbe 'ls' generiraju tablične izlaze. Ovdje ćemo vam pokazati kako ispisati prvi stupac i / ili zadnji stupac iz izlaza naredbe 'ls -l'.
Primjer 1: Ispišite prvi stupac izlaza naredbe
Sljedeća naredba 'awk' ispisat će prvi stupac s izlaza naredbe 'ls -l'.
$ ls -l$ ls -l | awk 'ispis $ 1'
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.
Primjer 2: Ispišite zadnji stupac izlaza naredbe
Sljedeća naredba 'awk' ispisat će zadnji stupac s izlaza naredbe 'ls -l'.
$ ls -l$ ls -l | awk 'ispiši $ NF'
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.
Primjer 3: Ispišite prvi i zadnji stupac izlaza naredbe
Sljedeća naredba 'awk' ispisat će prvi i posljednji stupac iz rezultata naredbe 'ls -l'.
$ ls -l$ ls -l | awk 'ispis $ 1, $ NF'
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.
Ispišite prvi stupac i / ili zadnji stupac tekstualne datoteke
Ovdje ćemo vam pokazati kako pomoću naredbe 'awk' ispisati prvi stupac i / ili zadnji stupac tekstualne datoteke.
Stvorite tekstualnu datoteku
Da biste nastavili s ovim uputstvom, stvorite tekstualnu datoteku s imenom kupci.txt sa sljedećim sadržajem. Datoteka sadrži tri vrste korisničkih podataka: ime s ID-om, e-adresu i telefonski broj. Znak kartice (\ t) koristi se za odvajanje ovih vrijednosti.
Ime E-mail TelefonJonathon Bing - 1001 [e-pošta zaštićena] 01967456323
Micheal Jackson - 2006. [zaštićena e-poštom] 01756235643
Janifer Lopez - 3029 [e-pošta zaštićena] 01822347865
John Abraham - 4235 j [e-pošta zaštićena] 01590078452
Mir Sabbir - 2756 [e-mail zaštićen] 01189523978
Primjer 4: Ispis prvog stupca datoteke bez upotrebe separatora polja
Ako se u naredbi 'awk' ne koristi separator polja, tada se razmak koristi kao zadani separator polja. Sljedeća naredba 'awk' ispisat će prvi stupac pomoću zadanog separatora.
$ muški kupci.txt$ awk 'print $ 1' kupci.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Imajte na umu da izlaz prikazuje samo ime kupca jer se razmak primjenjuje kao separator polja. Rješenje ovog problema prikazano je u sljedećem primjeru.
Primjer 5: Ispišite prvi stupac datoteke s graničnikom
Ovdje se \ t koristi kao separator polja za ispis prvog stupca datoteke. Opcija '-F' koristi se za postavljanje separatora polja.
$ muški kupci.txt$ awk -F '\ t' 'print $ 1' kupci.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Sadržaj datoteke podijeljen je u tri stupca na temelju \ t. Stoga su ime i ID kupca ispisani kao prvi stupac. Ako želite ispisati ime kupca bez ID-a, prijeđite na sljedeći primjer.
Ako želite ispisati ime kupca bez id-a, tada morate koristiti '-' kao odvajač polja. Sljedeća naredba "awk" ispisat će ime kupca samo kao prvi stupac.
$ awk -F '-' 'print $ 1' kupci.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Rezultat uključuje puna imena kupaca bez njihovih ID-ova.
Primjer 6: Ispišite zadnji stupac datoteke
Sljedeća naredba 'awk' ispisat će zadnji stupac kupaca.txt. Budući da se u naredbi ne koristi separator polja, razmak će se koristiti kao separator polja.
$ muški kupci.txtKorisnici $ awk 'print $ NF'.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Posljednji stupac sadrži telefonske brojeve, kao što je prikazano u izlazu.
Primjer 7: Ispišite prvi i zadnji stupac datoteke
Sljedeća naredba "awk" ispisat će prvi i zadnji stupac kupaca.txt. Ovdje se kartica (\ t) koristi kao separator polja za dijeljenje sadržaja u stupce. Ovdje se kartica (\ t) koristi kao separator za izlaz.
$ muški kupci.txt$ awk -F "\ t" 'print $ 1 "\ t" $ NF' kupci.txt
Sljedeći će se izlaz pojaviti nakon pokretanja gornjih naredbi. Sadržaj je podijeljen u tri stupca po \ t; prvi stupac sadrži ime i ID kupca, a drugi stupac sadrži telefonski broj. Prvi i zadnji stupac ispisuju se upotrebom \ t kao razdvajača.
Zaključak
Naredba 'awk' može se primijeniti na različite načine za dobivanje prvog stupca i / ili posljednjeg stupca iz bilo kojeg izlaza naredbe ili iz tabličnih podataka. Važno je napomenuti da je u naredbi potreban separator polja, a ako nije predviđen, onda se koristi prostor.