Hur man läser fil rad för rad i Bash -skript

How Read File Line Line Bash Script



Hur skulle du skriva ett Bash -skript som kan behandla en textfil en rad i taget. Först behöver du en syntax och metod för att läsa filen rad för rad. Metoderna för detta tillvägagångssätt visas i denna handledning.

Anta att du har en fil med namnet company.txt vilket innehåll företagsnamnen. Denna fil innehåller följande innehåll.







Company.txt
Samsung
Nokia
LG
Symfoni
iphone

Exempel -1: Läsa filinnehåll från kommandoraden

Antag att du vill läsa filen, company.txt , rad för rad från kommandoraden utan 'katt' kommando. Kör följande kommando för att utföra uppgiften. medan loop kommer att läsa varje rad från filen company.txt i varje steg och lagra innehållet i raden i $ rad variabel som kommer att skrivas ut senare.



$medan läsalinje;do kastade ut $ rad;Gjort <company.txt



Exempel -2: Läsa filinnehåll med skript

Skapa en bash -fil och lägg till följande kod för att läsa innehållet i en viss fil. Här lagras ett befintligt filnamn i $ filnamn variabel och $ n variabel används för att behålla värdet på radnumret för den filen. Som tidigare exempel, medan loop används för att läsa den här filen med radnummer.





#!/bin/bash
filnamn='company.txt'
n=1
medan läsalinje;do
# läser varje rad
kastade ut 'Rad nr.$ n:$ rad'
n= $((n+1))
Gjort < $ filnamn

Kör följande kommando för att köra skriptet.

$våldsamt slagreadfile1.sh

Springa 'katt' kommando med company.txt fil för att visa det ursprungliga innehållet i company.txt fil.



$ cat company.txt

Exempel -3: Skicka filnamn från kommandoraden och läsa filen

Skapa en bash -fil och lägg till följande skript. Detta skript tar filnamnet från kommandoradsargumentet. Det första argumentvärdet läses av variabeln $ 1 som innehåller filnamnet för läsning. Om filen finns på den aktuella platsen då medan loop kommer att läsa filen rad för rad som föregående exempel och skriva ut filinnehållet.

#!/bin/bash
filnamn=$ 1
medan läsalinje;do
# läser varje rad
kastade ut $ rad
Gjort < $ filnamn

Kör ovanstående skript med medarbetare.txt fil som argumentvärde. Utdata visar innehållet i medarbetare.txt fil genom att ta bort extra utrymme. Du kan visa originalinnehållet i medarbetare.txt fil med 'katt' kommando.

$ bash readfile2.txt anställd.txt
$ cat anställd.txt

Exempel - 4: Läsa filen genom att utelämna backslash -escape

Om du vill läsa varje rad i en fil genom att utelämna backslash -escape måste du använda '-R' alternativ med läskommando i medan slinga.

#!/bin/bash
medan läsa -rlinje;do
# Läser varje rad
kastade ut $ rad
Gjort <company2.txt

Skapa en fil med namnet company2.txt med backslash och kör följande kommando för att köra skriptet. Utmatningen visar filinnehållet utan bakåtstreck.

$våldsamt slagreadfile3.sh

Du måste läsa filen för många programmeringsändamål. Du kan till exempel enkelt söka efter eller matcha ett visst innehåll från vilken fil som helst genom att läsa varje rad separat. Så det är en viktig uppgift för all programmering. Några enkla exempel på att läsa fil i bash -skript visas i den här självstudien. Dessa hjälper dig att få uppfattningen att läsa filinnehåll rad för rad med loop i bash -skript och tillämpa i ditt skript mer effektivt. För mer information titta videon !