Startpagina > Tekstverwerking en zoeken > awk-print

awk print: Tekstgegevens afdrukken

Een gids voor de `print`-instructie binnen het `awk`-commando om gegevens af te drukken. `print` is een van de kernfuncties van `awk`-scripts en wordt gebruikt om verwerkte tekst uit bestanden of streams naar de standaarduitvoer te sturen. U kunt flexibel specifieke velden, volledige regels of door de gebruiker gedefinieerde strings afdrukken.

Overzicht

De `print`-instructie in `awk` wordt gebruikt om gegevens die uit invoerrecords (regels) zijn geëxtraheerd, naar de standaarduitvoer te sturen. U kunt gegevens per veld (kolom) selecteren, meerdere velden combineren om af te drukken, en de uitvoer controleren op basis van voorwaarden. `print` is een van de meest basale acties in `awk`-scripts.

Belangrijkste kenmerken

De belangrijkste functies van `awk print` zijn als volgt:

  • Volledige regel of specifieke velden afdrukken
  • Gebruik van ingebouwde variabelen (NR, NF, FS, RS, etc.)
  • Combineren van strings en velden om af te drukken
  • Ondersteuning voor voorwaardelijke uitvoer
  • Voegt standaard een nieuwe regel toe na elke uitvoer

Gebruiksvoorbeelden

Diverse voorbeelden met behulp van de `print`-instructie van `awk`. We gaan ervan uit dat het voorbeeld bestand `data.txt` er als volgt uitziet: `apple 10 red banana 20 yellow orange 15 orange`

Volledige regel afdrukken

awk '{print}' data.txt

Drukt alle regels van het invoerbestand ongewijzigd af.

Eerste veld afdrukken

awk '{print $1}' data.txt

Drukt alleen het eerste veld ($1) van elke regel af.

Meerdere velden en strings combineren om af te drukken

awk '{print "Item:", $1, "Color:", $3}' data.txt

Drukt het eerste en derde veld af, gescheiden door een komma, en voegt een door de gebruiker gedefinieerde string toe.

Afdrukken wanneer aan specifieke voorwaarden wordt voldaan

awk '$2 > 15 {print}' data.txt

Drukt alleen de regels af waarbij het tweede veld ($2) groter is dan 15.

Laatste veld afdrukken

awk '{print $NF}' data.txt

Drukt alleen het laatste veld ($NF) van elke regel af. NF is een ingebouwde variabele die het totale aantal velden in de huidige regel aangeeft.

Afdrukken na wijzigen van veldscheidingsteken

echo "fruit,100,red\nbanana,200,yellow" | awk -F',' '{print $1, $2}'

Stelt het invoerveldscheidingsteken (-F) in op een komma (,) en drukt het eerste en tweede veld af. (Voorbeeld bestand: `fruit,100,red\nbanana,200,yellow`)

Tips & Aandachtspunten

Tips en aandachtspunten voor het effectiever gebruiken van `awk print`.

Prestatie- en gebruiks-tips

  • Gebruik `printf` in plaats van `print`: `printf` kan, vergelijkbaar met C's `printf`, de opmaak nauwkeurig regelen. `print` voegt standaard OFS (Output Field Separator) toe tussen elk argument en OSR (Output Record Separator, standaard een nieuwe regel), maar `printf` vereist dat u de opmaak zelf specificeert.
  • Specificeer het veldscheidingsteken (`-F`) duidelijk: Als het veldscheidingsteken van het invoerbestand geen spatie is, moet u de `-F` optie gebruiken om een nauwkeurige veldscheiding te garanderen.
  • Beheer complexe logica in `awk` scriptbestanden: Als het script langer wordt, is het beter om het te beheren in een apart bestand met `awk -f script.awk data.txt` voor leesbaarheid en onderhoudbaarheid.
  • Gebruik ingebouwde variabelen: Het gebruik van `awk`'s krachtige ingebouwde variabelen zoals `NR` (huidig recordnummer), `NF` (aantal velden in het huidige record), `FS` (invoer veldscheidingsteken), `RS` (invoer record scheidingsteken) maakt flexibelere verwerking mogelijk.

Hétzelfde categoriecommando