Hoe een bestand regel voor regel te lezen in Bash-script

How Read File Line Line Bash Script



Hoe zou je een Bash-script schrijven dat een tekstbestand regel voor regel kan verwerken. Eerst heb je een syntaxis en aanpak nodig om het bestand regel voor regel te lezen. De methoden voor deze aanpak worden in deze zelfstudie getoond.

Stel, je hebt een bestand met de naam bedrijf.txt waarin de bedrijfsnamen staan. Dit bestand bevat de volgende inhoud.







Bedrijf.txt
Samsung
Nokia
LG
Symfonie
iphone

Voorbeeld -1: Bestandsinhoud lezen vanaf de opdrachtregel

Stel dat u het bestand wilt lezen, bedrijf.txt , regel voor regel vanaf de opdrachtregel zonder 'kat' opdracht. Voer de volgende opdracht uit om de taak uit te voeren. terwijl loop zal elke regel uit het bestand lezen bedrijf.txt in elke stap en sla de inhoud van de regel op in $lijn variabele die later wordt afgedrukt.



$terwijl lezenlijn;doen gooide uit $lijn;gedaan <bedrijf.txt



Voorbeeld -2: Bestandsinhoud lezen met script

Maak een bash-bestand en voeg de volgende code toe om de inhoud van een bepaald bestand te lezen. Hier wordt een bestaande bestandsnaam opgeslagen in $bestandsnaam variabel en $n variabele wordt gebruikt om de waarde van het regelnummer van dat bestand te behouden. Zoals het vorige voorbeeld, terwijl loop wordt gebruikt om dit bestand met regelnummer te lezen.





#!/bin/bash
bestandsnaam='bedrijf.txt'
N=1
terwijl lezenlijn;doen
# elke regel lezen
gooide uit 'Lijn nr.$n:$lijn'
N= $((n+1))
gedaan < $bestandsnaam

Voer de volgende opdracht uit om het script uit te voeren.

$bashreadfile1.sh

Loop 'kat' commando met bedrijf.txt bestand om de originele inhoud van bedrijf.txt het dossier.



$ cat company.txt

Voorbeeld -3: bestandsnaam doorgeven vanaf de opdrachtregel en het bestand lezen

Maak een bash-bestand en voeg het volgende script toe. Dit script neemt de bestandsnaam van het opdrachtregelargument. De waarde van het eerste argument wordt gelezen door de variabele $1 die de te lezen bestandsnaam zal bevatten. Als het bestand op de huidige locatie bestaat, dan: terwijl loop zal het bestand regel voor regel lezen zoals in het vorige voorbeeld en de inhoud van het bestand afdrukken.

#!/bin/bash
bestandsnaam=$ 1
terwijl lezenlijn;doen
# elke regel lezen
gooide uit $lijn
gedaan < $bestandsnaam

Voer het bovenstaande script uit met werknemer.txt bestand als argumentwaarde. De uitvoer toont de inhoud van werknemer.txt bestand door extra ruimte te verwijderen. U kunt de originele inhoud van werknemer.txt bestand met behulp van 'kat' opdracht.

$ bash readfile2.txt werknemer.txt
$ cat werknemer.txt

Voorbeeld – 4: Bestand lezen door backslash-escape weg te laten

Als u elke regel van een bestand wilt lezen door de backslash-escape weg te laten, moet u . gebruiken '-R' optie met leescommando in terwijl lus.

#!/bin/bash
terwijl lezen -Rlijn;doen
# Elke regel lezen
gooide uit $lijn
gedaan <bedrijf2.txt

Maak een bestand met de naam bedrijf2.txt met backslash en voer de volgende opdracht uit om het script uit te voeren. De uitvoer toont de bestandsinhoud zonder enige backslash.

$bashreadfile3.sh

U zult het bestand voor veel programmeerdoeleinden moeten lezen. U kunt bijvoorbeeld gemakkelijk bepaalde inhoud uit elk bestand zoeken of matchen door elke regel afzonderlijk te lezen. Het is dus een essentiële taak voor elke programmering. Enkele eenvoudige voorbeelden van het lezen van bestanden in bash-script worden in deze zelfstudie getoond. Deze zullen je helpen om het idee te krijgen om de inhoud van bestanden regel voor regel te lezen met behulp van while-lus in bash-script en efficiënter toe te passen in je script. Kijk voor meer informatie de video !