Bash För varje rad i en fil

Bash Each Line File



For -slingan i Bash kan användas med olika varianter för att utföra flera uppgifter. En sådan variant är För varje rad i filen som är ansvarig för att läsa alla rader i en fil. I den här artikeln kommer vi att prata om metoderna för att använda för varje rad i filen i Bash.

Obs! Metoderna som visas nedan har demonstrerats på Ubuntu 20.04. Men de kommer också att fungera bra med alla andra Linux -distributioner.







Metoder för att använda för varje rad i filen i Bash:

I dessa metoder kommer vi att visa dig ett exempel där du kan läsa varje rad från en fil, och sedan kan du antingen visa den på terminalen eller så kan du till och med lagra dessa rader i en annan fil. Låt oss ta en titt på båda dessa metoder.



Metod 1: För att visa läslinjerna på terminalen:

För att visa raderna i en fil på terminalen med varje rad i filen måste du utföra följande steg:



Steg 1: Skapa en dummy -textfil:

Först och främst måste du skapa en textfil med några slumpmässiga data för demonstrationens skull. Även om denna textfil kan skapas var som helst, rekommenderas det dock starkt att du skapar den i hemmappen. För att göra det, klicka på ikonen Filhanteraren markerad i bilden nedan:





  • Skapa en dummy textfil

    Högerklicka nu var som helst i hemmappen och välj alternativet Nytt dokument från menyn som visas. Välj sedan alternativet Töm dokument. När ett tomt dokument har skapats i din hemmapp anger du det valda namnet för det följt av .txt -tillägget. I det här exemplet har vi döpt det till ForEachLine.txt.

  • Skapa en dummy -textfil 2
    Dubbelklicka på denna textfil för att öppna den och skriv sedan in slumpmässig text i den som visas i följande bild. När du har gjort detta, spara den här filen och stäng den.



  • Skapa en dummy -textfil 3

    Steg # 2: Skapa Bash Script:

    Skapa nu en Bash -fil på samma sätt som du har skapat textfilen i hemmappen förutom att den här gången måste du ange dess namn följt av .sh -tillägget istället för .txt -tillägget. Vi har döpt vår Bash -fil till ForEachLine.sh men du kan ge den valfritt namn.
    Skapa Bash Script

    Öppna den här filen genom att dubbelklicka på den och skriv sedan in skriptet som visas på bilden nedan i din nyskapade Bash-fil. Här är den första raden där för att indikera att följande skript är ett Bash -skript. Vi har helt enkelt skapat en variabel med namnet File och har tilldelat den namnet på vår textfil som dess värde, dvs. ForEachLine.txt. Sedan har vi skapat en variabel som heter Lines och utjämnat den till $ (cat $ File). Här läser cat -kommandot innehållet i vår textfil och när den föregås av en $ -symbol kommer innehållet som läses av detta kommando att lagras i variabeln Lines. På så sätt kommer alla rader i filen som heter ForEachLine.txt att lagras i variabeln Linjer. Sedan har vi applicerat For -slingan som har en iteratorlinje. Denna iterator fungerar på linjevariabeln som vi har skapat ovan och den kommer att iterera genom alla rader en efter en. Sedan i det färdiga blocket har vi helt enkelt visat alla dessa rader på terminalen genom att använda ekokommandot.
    Skapa Bash Script2

    Steg # 3: Kör Bash Script:

    Starta nu terminalen i Ubuntu 20.04 och kör sedan följande kommando i den för att utföra Bash -skriptet som skapats ovan:
    bash ForEachLine.sh
    Kör Bash Script

    När detta kommando kommer att göra bash -skriptet att köra, kommer du att kunna se alla rader i din textfil på din terminal som visas i följande bild:
    Kör Bash Script

    Metod # 2: För att spara alla läserader i en annan fil:

    I denna metod har vi något modifierat Bash -skriptet som skapats i metoden ovan för att spara alla läserader i en ny textfil istället för att visa dem på terminalen. För att göra detta, utför stegen som nämns nedan:

    Steg 1: Ändra Bash -skriptet skapat ovan och kör det:

    Öppna Bash -skriptet som du har skapat i metoden ovan och ändra det som visas i följande bild. Vi har helt enkelt lagt till symbolen >> följt av ett nytt filnamn efter echo-kommandot i blocket. Denna ändring kommer att spara alla läserader till en ny textfil istället för att visa dem på terminalen. Kör nu Bash -skriptet igen via terminalen med bash -kommandot följt av Bash -filnamnet. Den här gången när Bash -skriptet körs kommer det att skapa en ny textfil vars namn i det här fallet är NewFile.txt.
    Ändra Bash Script skapat ovan och kör det 1

    Steg 2: Åtkomst till den nyskapade textfilen:

    För att verifiera om alla läserader har sparats i den nya textfilen kan du helt enkelt visa innehållet i filen genom att köra följande kommando i din terminal:
    katt NewFile.txt
    Få tillgång till den nyskapade textfilen
    Utmatningen som visas på bilden nedan försäkrar dig om att alla läserader har kopierats till den nya textfilen.
    Få tillgång till den nyskapade textfilen2

    Slutsats:

    På detta sätt kan du använda varje rad i filen för att läsa alla rader i en fil och sedan manipulera den med dessa rader. Vi har just pratat om de två grundläggande scenarierna i den här artikeln, men du kan även använda den här slingan för mer komplexa problem.