Hvordan lese fil linje for linje i Bash -skript

How Read File Line Line Bash Script



Hvordan vil du skrive et Bash -skript som kan behandle en tekstfil en linje om gangen. Først trenger du en syntaks og tilnærming for å lese filen linje for linje. Metodene for denne tilnærmingen er vist i denne opplæringen.

Anta at du har en fil som heter company.txt hvilket innhold bedriftens navn er. Denne filen inneholder følgende innhold.







Company.txt
Samsung
Nokia
LG
Symfoni
iphone

Eksempel -1: Lese filinnhold fra kommandolinjen

Anta at du vil lese filen, company.txt , linje for linje fra kommandolinjen uten 'katt' kommando. Kjør følgende kommando for å utføre oppgaven. samtidig som loop vil lese hver linje fra filen company.txt i hvert trinn og lagre innholdet i linjen i $ linje variabel som skrives ut senere.



$samtidig som leselinje;gjøre kastet ut $ linje;gjort <company.txt



Eksempel -2: Lese filinnhold ved hjelp av skript

Lag en bash -fil og legg til følgende kode for å lese innholdet i en bestemt fil. Her er et eksisterende filnavn lagret i $ filnavn variabel og $ n variabel brukes til å beholde verdien av linjenummeret til filen. Som forrige eksempel, samtidig som loop brukes til å lese denne filen med linjenummer.





#!/bin/bash
filnavn='company.txt'
n=1
samtidig som leselinje;gjøre
# leser hver linje
kastet ut 'Linjenr.$ n:$ linje'
n= $((n+1))
gjort < $ filnavn

Kjør følgende kommando for å utføre skriptet.

$bashreadfile1.sh

Løpe 'katt' kommando med company.txt filen for å vise det opprinnelige innholdet i company.txt fil.



$ cat company.txt

Eksempel -3: Passerer filnavn fra kommandolinjen og leser filen

Lag en bash -fil og legg til følgende skript. Dette skriptet tar filnavnet fra kommandolinjeargumentet. Den første argumentverdien leses av variabelen $ 1 som vil inneholde filnavnet for lesing. Hvis filen finnes på den nåværende plasseringen samtidig som loop vil lese filen linje for linje som forrige eksempel og skrive ut filinnholdet.

#!/bin/bash
filnavn=$ 1
samtidig som leselinje;gjøre
# leser hver linje
kastet ut $ linje
gjort < $ filnavn

Kjør skriptet ovenfor med ansatt.txt fil som argumentverdi. Utgangen vil vise innholdet i ansatt.txt fil ved å fjerne ekstra plass. Du kan vise det opprinnelige innholdet i ansatt.txt filen ved å bruke 'katt' kommando.

$ bash readfile2.txt ansatt.txt
$ katt ansatt. txt

Eksempel - 4: Lese fil ved å utelate tilbakeslagsslipp

Hvis du vil lese hver linje i en fil ved å utelate skråstrek, må du bruke '-R' alternativ med lese kommando i samtidig som Løkke.

#!/bin/bash
samtidig som lese -rlinje;gjøre
# Leser hver linje
kastet ut $ linje
gjort <company2.txt

Lag en fil med navnet company2.txt med omvendt skråstrek og kjør følgende kommando for å utføre skriptet. Utgangen viser filinnholdet uten tilbakeslag.

$bashreadfile3.sh

Du må lese filen for mange programmeringsformål. For eksempel kan du enkelt søke eller matche et bestemt innhold fra en fil ved å lese hver linje separat. Så det er en viktig oppgave for enhver programmering. Noen enkle eksempler på lesing av filer i bash -skript er vist i denne opplæringen. Disse vil hjelpe deg med å få ideen om å lese filinnhold linje for linje ved å bruke loop i bash script og bruke i scriptet mer effektivt. For mer informasjon se videoen !