Hvordan lese fillinje for linje i bash -skriptet

Hvordan lese fillinje for linje i bash -skriptet
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 fillinjen for linje. Metodene for denne tilnærmingen vises i denne opplæringen.

Anta at du har en fil som heter selskap.tekst Hvilket innhold selskapet navngir. Denne filen inneholder følgende innhold.

Selskap.tekst
Samsung
Nokia
LG
Symfoni
iPhone

Eksempel -1: Lese filinnhold fra kommandolinje

Anta at du vil lese filen, selskap.tekst, linje for linje fra kommandolinjen uten 'katt' kommando. Kjør følgende kommando for å gjøre oppgaven. samtidig som Loop vil lese hver linje fra filen selskap.tekst i hvert trinn og lagre innholdet på linjen i $ linje variabel som vil bli skrevet ut senere.

$ mens du er lest linje; gjør ekko $ linje; Ferdig < company.txt

Eksempel -2: Lese filinnhold ved hjelp av skript

Opprett en bash -fil og legg til følgende kode for å lese innholdet i en bestemt fil. Her lagres et eksisterende filnavn $ filnavn variabel og $ n Variabel brukes til å holde verdien på linjenummeret til filen. Som forrige eksempel, samtidig som Loop brukes til å lese denne filen med linjenummer.

#!/bin/bash
filnavn = 'Company.tekst'
n = 1
mens du leser linjen; gjøre
# Lesing av hver linje
ekko "linje nei. $ n: $ linje "
n = $ ((n+1))
Ferdig < $filename

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

$ bash readfile1.sh

Løpe 'katt' kommando med selskap.tekst fil for å vise det originale innholdet i selskap.tekst fil.

$ katteselskap.tekst

Eksempel -3: Passerende filnavn fra kommandolinjen og leser filen

Lag en bash -fil og legg til følgende skript. Dette skriptet vil ta filnavnet fra kommandolinjeargumentet. Første argumentverdi blir lest av variabelen $ 1 som vil inneholde filnavnet for lesing. Hvis filen eksisterer på det nåværende stedet da samtidig som Loop vil lese fillinjen for linje som forrige eksempel og skrive ut filinnholdet.

#!/bin/bash
filnavn = $ 1
mens du leser linjen; gjøre
# Lesing av hver linje
ekko $ linje
Ferdig < $filename

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

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

Eksempel - 4: Lesefil ved å utelate backslash -flukt

Hvis du vil lese hver linje i en fil ved å utelate backslash -flukt, må du bruke '-r' Alternativ med lese -kommando i samtidig som Løkke.

#!/bin/bash
Mens du er lest -r linje; gjøre
# Lesing av hver linje
ekko $ linje
Ferdig < company2.txt

Lag en fil som heter Company2.tekst med tilbakeslag og kjør følgende kommando for å utføre skriptet. Utgangen vil vise filinnholdet uten noe tilbakeslag.

$ bash readfile3.sh

Du må lese filen for mange programmeringsformål. Du kan for eksempel søke eller matche et bestemt innhold enkelt fra hvilken som helst fil ved å lese hver linje separat. Så det er en essensiell oppgave for all programmering. Noen enkle eksempler på lesefil i bash -skriptet vises i denne opplæringen. Disse vil hjelpe deg å få ideen om å lese filinnholdslinje for linje ved hjelp av mens du er sløyfe i bash -skriptet og brukes i skriptet ditt mer effektivt. For mer informasjon, se videoen!