Bash:
Een tekstbestand lezen
Hoe:
Hier is de eenvoudigste manier om een bestand regel-voor-regel te lezen:
while IFS= read -r line; do
echo "Tekst: $line"
done < "jouwbestand.txt"
Wil je het hele bestand in één keer? Probeer dit:
file_content=$(<jouwbestand.txt)
echo "$file_content"
Of heb je een specifieke regel nodig, zeg regel 4?
sed '4q;d' jouwbestand.txt
Voorbeelduitvoer voor het lezen van regel 4:
Dit is de inhoud van regel vier.
Diepere Duik
Vroeger hadden we geen chique IDE’s, we hadden terminals en eenvoudige teksteditors. UNIX-tools waren ontworpen met een filosofie van één ding goed doen. cat
, less
, sed
, en awk
zijn veteranen in het manipuleren van tekst.
Een bestand lezen in Bash maakt gebruik van deze tools, plus Bash’s eigen redirects en lussen. Bijvoorbeeld, het gebruik van while
met read
is goed voor geheugenefficiëntie met grote bestanden. Je leest regel voor regel, niet alles in het geheugen dumpen.
sed
is een stream editor. Een specifieke regel pakken met sed '4q;d' jouwbestand.txt
vertelt sed
om te stoppen na regel 4 (4q
) en dan die regel te printen (;d
).
Er bestaan alternatieven. awk
is krachtig voor tekstverwerking. Perl en Python-scripts kunnen binnen Bash worden aangeroepen als tekstverwerking complex wordt. Elk van deze tools en talen heeft zijn eigen gebruiksscenario’s en prestatieoverwegingen.
Zie Ook
- Bash Scripting Handleiding: https://www.gnu.org/software/bash/manual/
sed
enawk
101 Hacks: https://www.thegeekstuff.com/2009/12/unix-sed-tutorial-6-examples-to-edit-file-in-place/- Linux Command Line Tekstverwerking met
grep
,awk
,sed
,sort
, en vrienden: https://github.com/learnbyexample/Command-line-text-processing