Bash Voor elke regel in een bestand

Bash Each Line File



De For-lus in Bash kan met verschillende variaties worden gebruikt voor het uitvoeren van meerdere taken. Een dergelijke variatie is de For each line in file die verantwoordelijk is voor het lezen van alle regels in een bestand. In dit artikel zullen we het hebben over de gebruiksmethoden voor elke regel in het bestand in Bash.

Opmerking: de onderstaande methoden zijn gedemonstreerd op Ubuntu 20.04. Ze zullen echter ook goed werken met elke andere Linux-distributie.







Gebruiksmethoden voor elke regel in het bestand in Bash:

Bij deze methoden laten we u een voorbeeld zien waarin u elke regel uit een bestand kunt lezen, en u kunt deze vervolgens op de terminal weergeven of u kunt deze regels zelfs in een ander bestand opslaan. Laten we beide methoden eens bekijken.



Methode # 1: Voor het weergeven van de leesregels op de terminal:

Voor het weergeven van de regels van een bestand op de terminal door voor elke regel in het bestand te gebruiken, moet u de volgende stappen uitvoeren:



Stap # 1: Een dummy-tekstbestand maken:

Allereerst moet u een tekstbestand maken met enkele willekeurige gegevens omwille van de demonstratie. Hoewel dit tekstbestand overal kan worden gemaakt, wordt het ten zeerste aanbevolen dat u het in de thuismap maakt. Om dat te doen, klikt u op het pictogram Bestandsbeheer dat is gemarkeerd in de onderstaande afbeelding:





  • Een dummy-tekstbestand maken

    Klik nu met de rechtermuisknop ergens in uw thuismap en selecteer de optie Nieuw document in het menu dat verschijnt. Selecteer vervolgens de optie Document leegmaken. Zodra een leeg document in uw thuismap is gemaakt, geeft u de naam van uw keuze op, gevolgd door de extensie .txt. In dit voorbeeld hebben we het ForEachLine.txt genoemd.

  • Een dummy-tekstbestand maken2
    Dubbelklik op dit tekstbestand om het te openen en typ er willekeurige tekst in, zoals weergegeven in de volgende afbeelding. Sla daarna dit bestand op en sluit het.



  • Een dummy-tekstbestand maken3

    Stap # 2: Het Bash-script maken:

    Maak nu een Bash-bestand op dezelfde manier als u het tekstbestand in de thuismap hebt gemaakt, behalve dat u deze keer de naam moet opgeven, gevolgd door de .sh-extensie in plaats van de .txt-extensie. We hebben ons Bash-bestand ForEachLine.sh genoemd, maar u kunt het elke gewenste naam geven.
    Het Bash-script maken

    Open dit bestand door erop te dubbelklikken en typ vervolgens het script dat wordt weergegeven in de onderstaande afbeelding in uw nieuw gemaakte Bash-bestand. Hier is de eerste regel om aan te geven dat het volgende script een Bash-script is. We hebben eenvoudigweg een variabele gemaakt met de naam Bestand en hebben deze de naam van ons tekstbestand toegewezen als zijn waarde, d.w.z. ForEachLine.txt. Vervolgens hebben we een variabele met de naam Lines gemaakt en deze gelijkgesteld aan $(cat $File). Hier leest het cat-commando de inhoud van ons tekstbestand en wanneer het wordt voorafgegaan door een $-symbool, wordt de inhoud die door dit commando wordt gelezen, opgeslagen in de Lines-variabele. Op deze manier worden alle regels van het bestand met de naam ForEachLine.txt opgeslagen in de variabele Lines. Vervolgens hebben we de For-lus toegepast die een iteratorlijn heeft. Deze iterator werkt op de Lines-variabele die we hierboven hebben gemaakt en itereert een voor een door alle regels. Vervolgens hebben we in het do-done-blok eenvoudig al deze regels op de terminal weergegeven door gebruik te maken van het echo-commando.
    Het Bash-script maken2

    Stap # 3: Het Bash-script uitvoeren:

    Start nu de terminal in Ubuntu 20.04 en voer vervolgens de volgende opdracht erin uit om het hierboven gemaakte Bash-script uit te voeren:
    bash ForEachLine.sh
    Het Bash-script uitvoeren

    Wanneer deze opdracht ervoor zorgt dat het bash-script wordt uitgevoerd, kunt u alle regels van uw tekstbestand op uw terminal zien, zoals weergegeven in de volgende afbeelding:
    Het Bash-script uitvoeren

    Methode # 2: Voor het opslaan van alle leesregels in een ander bestand:

    In deze methode hebben we het Bash-script dat in de bovenstaande methode is gemaakt enigszins gewijzigd om alle leesregels in een nieuw tekstbestand op te slaan in plaats van ze op de terminal weer te geven. Voer hiervoor de onderstaande stappen uit:

    Stap # 1: Het hierboven gemaakte Bash-script wijzigen en uitvoeren:

    Open het Bash-script dat u in de bovenstaande methode hebt gemaakt en wijzig het zoals weergegeven in de volgende afbeelding. We hebben simpelweg het >> symbool toegevoegd gevolgd door een nieuwe bestandsnaam na het echo commando binnen het do-done blok. Deze wijziging slaat alle gelezen regels op in een nieuw tekstbestand in plaats van ze op de terminal weer te geven. Voer nu het Bash-script opnieuw uit via de terminal met het bash-commando gevolgd door de Bash-bestandsnaam. Deze keer wanneer het Bash-script wordt uitgevoerd, wordt een nieuw tekstbestand gemaakt waarvan de naam in dit geval NewFile.txt is.
    Het hierboven gemaakte Bash-script wijzigen en het uitvoeren

    Stap # 2: Toegang tot het nieuw gemaakte tekstbestand:

    Om te controleren of alle gelezen regels zijn opgeslagen in het nieuwe tekstbestand, kunt u eenvoudig de inhoud van dat bestand bekijken door de volgende opdracht in uw terminal uit te voeren:
    cat NewFile.txt
    Toegang tot het nieuw aangemaakte tekstbestand
    De uitvoer die in de onderstaande afbeelding wordt getoond, zorgt ervoor dat alle gelezen regels naar het nieuwe tekstbestand zijn gekopieerd.
    Toegang krijgen tot het nieuw aangemaakte tekstbestand2

    Conclusie:

    Op deze manier kunt u voor elke regel in het bestand alle regels van een bestand gebruiken om het vervolgens met deze regels te manipuleren. We hebben zojuist gesproken over de twee basisscenario's in dit artikel, maar u kunt deze lus zelfs gebruiken voor complexere problemen.