Bruke “AWK” -kommandoen for å skrive ut den siste kolonnen fra en fil

Bruke “AWK” -kommandoen for å skrive ut den siste kolonnen fra en fil

Noen ganger kommer det en situasjon når vi ikke trenger å lese den komplette filen, vi trenger bare en del av filen som skal vises. I denne situasjonen prøver vi å finne noen effektive måter å få dem uten å gå gjennom hele filinnholdet. "AWK" -kommandoen er den.

Kommandoen “AWK” er et kommandolinjeverktøy som brukes i Linux for å gjennomføre søk med forskjellige mønstre og for behandling. Det er en kommando som lar en koder kode små, men effektive kodelinjer i form av utsagn som setter i gang tekstmønstre som brukes til å gjennomføre søk i alle deler av et dokument. Så det er også en enormt brukt kommando for tekstbehandling.

Ved hjelp av “AWK” -kommandoen kan en programmerer hente data og deler av en spesifikk tekst basert på mønsteret som er gitt til kommandoen. AWK -kommando kan skanne og søke på filer linje for linje, distribuere og skille ut hver linje som er overført som inngang i felt, sammenligne og matche felt med inngangslinjer og utføre instruksjoner spesifisert av programmereren på matchede linjer. AWK -kommandoer kan brukes til produksjon av rapporter i spesifikke formater og for å endre data i filene.

Syntaks:

Følgende er syntaks for AWK -kommandoen:

awk 'action' your_file_name.tekst

I denne kommandoen brukes parameteren "Handling" i syntaks for å definere handlingen som vår kommando vil være til utført. Etter det vil vi gi navnet på filen vår som en parameter som vi skal operere.

Eksempel nr. 1:

I dette eksemplet vil vi prøve å skrive ut NTH eller den siste kolonnen i filen ved hjelp av AWK -kommandoen. La oss først lage en ny fil som inneholder noen data relatert til ansatte. For å opprette en ny fil, kjører vi kommandoen nedenfor:

Linux@Linux-VirtualBox: ~ $ Touch ansatt.tekst

Etter å ha kjørt kommandoen ovenfor, oppretter den en ny fil i vår hjemmekatalog. Det er ikke nødvendig å opprette en fil i hjemmekatalogen du kan opprette den hvor som helst i systemet ditt. Nå vil vi sjekke om filen er opprettet eller ikke. For det vil vi ganske enkelt sjekke hjemmekatalogen. Som vist i utdraget nedenfor, har vi opprettet en ny fil som heter ansatt.tekst.

Nå vil vi legge til noe innhold i filen ved hjelp av en notisblokk, som vist i utdraget nedenfor. Vi har lagt til fem ansattes data i IT som inkluderer navn, betegnelse og lønn til den ansatte. Dataene vises nedenfor som er lagret i filen “Ansatt.tekst".

Navn Betegnelse lønn
Jhone Manager $ 142
Rick Assistant $ 543
Linda Designer $ 148
Alex Proj Manager $ 342

Nå opprettes filen med hell med innholdet og for å få den siste kolonnen i filen ved hjelp av AWK -kommandoen. For det vil vi kjøre kommandoen nevnt nedenfor:

linux@linux-virtualbox: ~ $ awk 'print $ nf' ansatt.tekst

I kommandoen over besto vi utskriftserklæringen sammen med nøkkelordet "$ NF", noe som betyr at AWK -kommandoen vil instruere kompilatoren om å skrive ut “$ NF” som indikerer det første feltet i filen. Den siste “ansatt.txt ”er navnet på filen hvis siste kolonne skal skrives ut. Ved å trykke på ENTER -tasten, vil vi kjøre kommandoen som utdata som vises nedenfor er generert på terminalen der lønnen til de ansatte vises.

lønn
$ 142
543 dollar
$ 148
342 dollar

Eksempel nr. 2:

I dette eksemplet vil vi lese den siste kolonnen i filen, men denne gangen bruker vi en annen metode som for det meste brukes når antall kolonner er kjent av brukeren. La oss nå først lage en ny fil som inneholder dataene til fem studenter. Det inkluderer navnet på elevene, deres klasser og merkene de fikk.

linux@linux-virtualbox: ~ $ nano student.tekst

Når vi kjører kommandoen over, oppretter den en ny fil og åpner den automatisk i en tekstredigerer. Nå vil vi legge til dataene fra studentene i filen og ved å trykke på “Ctrl + X”. Vi lagrer filen etter å ha lagt innholdet i den. I vårt tilfelle la vi til data om fem studenter i IT. Ved å lagre filen, vil vi bevege oss mot hovedmålet vårt som er å skrive ut den siste kolonnen i filen. Nedenfor er innholdet i filen “Student.tekst".

Navnklassemerker
Jhone Gradec 154
Rick Gamea 124
Linda Gradeb 144
Alex Grada 122

Nå kjører vi AWK -kommandoen for å skrive ut den siste kolonnen i filen. La oss anta at vi denne gangen kjenner kolonnene i filen, og vi vil skrive ut den siste kolonnen i den. For det vil vi bruke AWK -kommandoen sammen med kolonnenummeret som skal skrives ut på terminalen. Som vi vet at det bare er tre kolonner i filen vår som er navnet på elevene, deres klasser og merkene. For å skrive ut den siste kolonnen, kjører vi kommandoen nedenfor:

linux@linux-virtualbox: ~ $ awk 'skriv ut $ 3' student.tekst

I denne kommandoen passerte vi “$ 3” sammen med utskriftskommandoen som betyr at “AWK” vil instruere kompilatoren om å skrive ut den tredje kolonnen i filen som heter “Student.tekst". Når vi kjører denne kommandoen, vil den skrive ut følgende utdata der merkene til studentene skrives ut. Vi kan også sammenligne utdataene med filutdraget som vises ovenfor. Filen inneholder bare tre kolonner, og den siste kolonnen i filen inneholder merkene til studentene. Denne kommandoen kan brukes til å skrive ut hvilken som helst kolonne i filen; det er ikke bare spesifisert for å skrive ut den siste kolonnen. Ved å endre “$ 3” -tegnet til “$ 2”, kan vi skrive ut den andre kolonnen. Etter å ha kjørt kommandoen over, vil vi få utdataene som vises nedenfor.

Merker
154
124
144
122

Konklusjon

Vi har studert en "awk" -kommando som er mye brukt til å ramme innholdet i filen som er nødvendig direkte. Deretter implementerte vi flere eksempler for å lese den spesifiserte siste kolonnen i filene ved hjelp av AWK -kommandoen. Du kan implementere flere eksempler for å få en bedre ide om hvordan AWK -kommandoen kan brukes.