Bash: med branjem vrstice

Bash While Read Line



Ko delate na bash skriptih, boste včasih morali datoteko prebrati po vrstici. Razložimo s primerom. V besedilni datoteki imate nekaj podatkov, ki jih je treba izvesti ali obdelati s skriptom. Torej je zagon bash skripta za obdelavo besedilne datoteke precej drugačen. Če želite prebrati datoteko po vrstici, morate slediti določeni skladnji. Ta članek vam bo pomagal prebrati vrstico iz datoteke z uporabo zanke while v Bashu.

Osnovna skladnja vrstice medtem ko berete

Naslednja skladnja se uporablja za bash shell za branje datoteke z uporabo zanke while:







medtem prebrati -rvrstica;
naredi
vrgel ven 'vrstica $';
Končano <input.file

Možnost '-r' v zgoraj omenjeni skladnji je bila podana za branje ukaza, ki preprečuje razlago poševnice. Možnost 'input_file' je predstavljala ime vaše datoteke, do katere želite dostopati z ukazom 'read'.



Notranji ločevalnik polj, skrajšano kot IFS, je mogoče uporabiti, preden je ukaz za branje nastavljen na ničelni niz, ki preprečuje obrezovanje začetnega ali zadnjega presledka.



medtem IFS=prebrati -rvrstica;
naredi
vrgel ven vrstica $;
Končano <input.file

Odprite terminal s bližnjico Ctrl + Alt + t in nato na njem zaženite naslednje ukaze.





Primer # 1: Branje datotek po vrsticah

Vzemimo primer, v katerem imamo datoteko z imenom OS.txt, ki vsebuje imena vseh pomembnih distribucij Linuxa. Če želite prebrati datoteko, ne da bi uporabili ukaz 'cat', lahko v ta namen za izvedbo določene naloge izvedete naslednji ukaz. Uporabili bomo zanko while, ki bo prebrala vsako vrstico iz datoteke OS.txt in shranila vsebino v vsakem koraku v spremenljivo vrstico $, ki jo lahko prikažete pozneje.

V OS.txt prilepite naslednja imena distribucij Linuxa



CentOS
Ubuntu
Debian
LinuxMint $medtem prebrativrstica;
naredi
vrgel ven vrstica $;
Končano <OS.txt


Iz zgornjega ukaza boste v oknu terminala dobili naslednji odgovor:

Primer # 2: Branje datoteke z uporabo bash skripta

Ustvarite bash datoteko in nato dodajte spodnjo kodo v to datoteko, da preberete vsebino datoteke. Prejšnjo besedilno datoteko lahko shranite v novo spremenljivko $ filename, spremenljivka $ n pa se uporablja za ohranjanje vrednosti vsake vrstice. Zdaj bomo z zanko while prebrali vsako vrstico iz datoteke z določeno številko vrstice.

#!/bin/bash
Ime datoteke='OS.txt'
n=1
medtem prebrativrstica;
naredi
# za branje vsake vrstice
vrgel ven „Distribucijska linija OS št.$ n:vrstica $'
n= $((n+1))
Končano < $ ime datoteke

Shranite datoteko z imenom OSinfo.sh in v terminal vnesite naslednji ukaz, da zaženete zgornji bash skript.

$bashOSinfo.sh

Zdaj zaženite ukaz cat za ogled izvirne vsebine datoteke.

$mačkaOS.txt

Alternativna metoda za branje datotek

Uporaba imena datoteke iz ukaza

V bash datoteko morate dodati naslednji kodni skript. V tem skriptu moramo kot argument vzeti ime datoteke. Najprej vrednost argumenta prebere spremenljivka $ 1, ki ima ime datoteke za branje. Preveril bo, ali ime datoteke obstaja na določeni lokaciji, nato pa z zanko while prebral datoteko po vrstici, podobno kot v prejšnjem primeru.

#!/bin/bash
Ime datoteke=1 USD
medtem prebrativrstica;naredi
# branje vsake vrstice
vrgel ven vrstica $
Končano < $ datoteko.txt

Shranite zgornji skript z imenom »Readline.sh« in na terminalu izvedite naslednji ukaz, da zaženete zgoraj omenjeni skript:

V zgornjem izhodu boste opazili, da datoteka 'OSinfo.txt' prehaja kot argument, vsebina datoteke 'OSinfo.txt' pa bo prikazana po odstranitvi dodatnih presledkov. Izvirno vsebino datoteke lahko prikažete tako, da zaženete »cat OSinfo.txt«.

Zaključek

V tem članku smo razpravljali o tem, kako brati vrstice z uporabo zanke while pri programiranju bash. Izvedli smo različne metode z uporabo bash skripta ali pa preprosto uporabite besedilno datoteko za branje datoteke po vrsti. Če vas zanima več primerov, lahko z zgoraj omenjeno skladnjo izvedete tudi v svojem sistemu. Upam, da vam je bila ta vadnica všeč in da bo edinstvena za vas. Sporočimo v primeru kakršne koli napake.