Processing Text Files

πŸ“š Hoofdstuk 4.1: Tekstbestanden Verwerken in Linux

──────────────────────────────
πŸ› οΈ Inleiding:
──────────────────────────────
Linux biedt krachtige tools om tekstbestanden te filteren, formatteren en analyseren.
Belangrijke commando’s in dit hoofdstuk:
cut β€’ grep β€’ sort β€’ cat β€’ printf β€’ wc

──────────────────────────────
πŸ” Filteren van Tekstbestanden:
──────────────────────────────

πŸ“Œ Begrippen:
β€’ Record = EΓ©n tekstregel (eindigt met LF)
β€’ Delimiter = Teken dat velden in een regel scheidt
β€’ Standaard delimiter: tab (`\t`)
β€’ Veelgebruikte delimiters: spatie, dubbele punt (`:`)

──────────────────────────────
βœ‚οΈ cut – Velden of tekens extraheren
──────────────────────────────
Optie | Betekenis
----------|----------------------------------------------------
-c nlist | Alleen opgegeven tekens tonen (bijv. 1-5)
-b blist | Alleen opgegeven bytes tonen
-d d | Delimiter wijzigen (standaard: tab)
-f flist | Alleen opgegeven velden tonen (bijv. 1,3)
-s | Sla regels zonder delimiter over
-z | Gebruik NUL als recordscheiding i.p.v. LF

βœ” Voorbeeld:
cut -d: -f1,3 /etc/passwd
β–Ά Toont gebruikersnamen + UID uit `/etc/passwd`

──────────────────────────────
πŸ”Ž grep – Tekst zoeken met regex
──────────────────────────────
Optie | Betekenis
----------|-----------------------------------------------------
-c | Tel het aantal overeenkomende regels
-d action | Wat te doen bij directories (bijv. skip, recurse)
-E | Gebruik uitgebreide regex (ERE)
-i | Hoofdletterongevoelig zoeken
-R / -r | Doorzoek subdirectories
-v | Toon regels die **niet** overeenkomen

βœ” Voorbeeld:
grep -E "^root|^dbus" /etc/passwd
β–Ά Zoek regels die beginnen met `root` of `dbus`

──────────────────────────────
πŸ“‘ Formatteren van Tekst:
──────────────────────────────

πŸ”’ sort – Regels sorteren
Optie | Betekenis
----------|-----------------------------------------------------
-n | Sorteer op numerieke waarde
-c | Controleer of bestand al gesorteerd is
-f | Negeer hoofdletterverschillen
-k n1[,n2]| Sorteer op veld(en)
-M | Sorteer op maandnamen (JAN, FEB...)

βœ” Voorbeeld:
sort -k2 -n data.txt
β–Ά Sorteer op 2e veld, numeriek

πŸ“‚ cat – Bestanden samenvoegen / tonen
Optie | Betekenis
----------|-----------------------------------------------------
-A | Toon speciale tekens en regelafbrekingen
-E | Toon `$` aan eind van regels
-n | Voeg regelnummers toe
-s | Verwijder dubbele lege regels
-T | Toon tabs als `^I`

βœ” Voorbeeld:
cat -n /etc/passwd
β–Ά Toon `/etc/passwd` met regelnummers

πŸ–¨οΈ printf – Tekst opmaken
Code | Betekenis
--------|-----------------------------
%c | Teken
%d | Decimaal getal
%f | Floating point getal
%s | String
\% | Toon %
\n | Nieuwe regel
\t | Tab

βœ” Voorbeeld:
printf "User: %s, ID: %d\n" root 0
β–Ά Output: `User: root, ID: 0`

──────────────────────────────
πŸ“Š Analyseren van Tekst:
──────────────────────────────

πŸ”’ wc – Woorden, regels, tekens tellen
Optie | Betekenis
----------|-----------------------------
-c | Aantal bytes
-L | Lengte langste regel
-l | Aantal regels
-m | Aantal tekens
-w | Aantal woorden

βœ” Voorbeeld:
wc -l /etc/passwd
β–Ά Telt aantal regels in `/etc/passwd`

──────────────────────────────