Met behulp van het awk-commando kunt u bestanden door­zoe­ken en bepaalde acties uitvoeren. De basis van dit Linux-commando gaat helemaal terug tot 1977.

Wat is het Linux awk-commando?

Linux heeft een script- en pro­gram­meer­taal die u kunt gebruiken om bestanden te evalueren en te bewerken. Deze taal heet awk en vindt zijn oorsprong in 1977. De naam is afgeleid van de namen van de drie ont­wik­ke­laars: Alfred Aho, Peter Wein­ber­ger en Brian Kernighan. U kunt de tool eenvoudig gebruiken via de op­dracht­re­gel of SSH (Secure Shell). Net als bij het Linux-commando grep kunt u het awk-commando gebruiken om naar bepaalde patronen in bestanden te zoeken en deze ver­vol­gens te bewerken als aan andere voor­waar­den is voldaan.

Hoe werkt het awk-commando?

Awk maakt gebruik van een com­bi­na­tie van voor­waar­den en in­struc­ties. Door het commando uit te voeren, wordt het bestand regel voor regel doorzocht op bepaalde voor­waar­den. Als het die voor­waar­den in een regel vindt, voert het de in­struc­tie daar uit. Als er geen voor­waar­de is ingesteld, wordt de in­struc­tie op elke regel uit­ge­voerd. Als u geen in­struc­tie invoert, wordt de stan­daard­in­struc­tie uit de in­voer­re­gel uit­ge­voerd. Dit betekent dat u Linux awk kunt gebruiken om in bestanden naar bepaalde termen of voor­beel­den te zoeken.

Hoe ziet de awk-syntaxis eruit?

De syntaxis voor het Linux awk-commando ziet er als volgt uit:

$ awk [Options] "Operation {Instructions}" [Target file]
shell

Welke opties heeft het awk-commando?

Je hebt drie opties:

  • -F [Schei­dings­te­ken]: Met deze optie kunt u een schei­dings­te­ken tussen bestanden instellen. Dit is meestal een enkele spatie.
  • -f [Be­stands­naam]: Met deze optie kunt u instellen in welk bestand u het awk-commando wilt uitvoeren.
  • -v: Gebruik deze optie om een variabele toe te voegen.

Voor­beel­den van het awk-commando

Om een beter begrip te krijgen van hoe u ask kunt gebruiken, volgen hier enkele voor­beel­den. In dit geval gebruiken we een bestand met de naam example.txt dat een lijst met steden, landen en con­ti­nen­ten in af­zon­der­lij­ke kolommen bevat. Het ziet er als volgt uit:

City Country Continent
Washington D.C USA America
Paris France Europe
Hanoi Vietnam Asia
Abuja Nigeria Africa
shell

Als u het volledige bestand wilt uitvoeren, moet u de volgende opdracht gebruiken:

$ awk "{print $0}" example.txt
shell

Als u echter alleen af­zon­der­lij­ke kolommen wilt zien, kunt u een aparte opdracht gebruiken. In ons geval zijn dat de eerste en derde kolom:

$ awk "{print $1, $3}" example.txt
shell

Dit levert de volgende uitvoer op:

Washington D.C America
Paris Europe
Hanoi Asia
Abuja Africa
Ga naar hoofdmenu