Bash: kun luet riviä

Bash While Read Line



Kun työskentelet bash -komentosarjojen parissa, joskus sinun on ehkä luettava tiedosto rivi riviltä. Selitetään esimerkillä. Tekstitiedostossa on joitain tietoja, jotka tulisi suorittaa tai käsitellä komentosarjan avulla. Joten bash -komentosarjan suorittaminen tekstitiedoston käsittelemiseksi on paljon erilaista. Sinun on noudatettava määritettyä syntaksia, jotta voit lukea tiedoston rivi riviltä. Tämä artikkeli auttaa sinua lukemaan rivin tiedostosta käyttämällä Bashin while -silmukkaa.

Rivin lukemisen perussyntaksi

Seuraavaa syntaksia käytetään bash -shellissä tiedoston lukemiseen while -silmukan avulla:







sillä aikaa lukea -rlinja;
tehdä
heitti pois ''$ rivi'';
tehty <input.file

Edellä mainitun syntaksin vaihtoehto '-r' välitettiin lukukomennoksi, joka estää käänteisviivan tulkinnan. 'Input_file' -vaihtoehto on edustanut tiedoston nimeä, jota haluat käyttää lukukomennolla.



Sisäistä kenttäerotinta, lyhennettä IFS, voidaan käyttää ennen kuin luku -komento asetetaan nollamerkkijonoksi, mikä estää välilyönnin leikkaamisen eteen- ja taaksepäin.



sillä aikaa IFS=lukea -rlinja;
tehdä
heitti pois $ rivi;
tehty <input.file

Avaa pääte Ctrl + Alt + t -pikanäppäimellä ja suorita sitten seuraavat komennot.





Esimerkki 1: Tiedoston lukeminen rivi riviltä

Otetaan esimerkki, jossa oletetaan, että meillä on tiedosto nimeltä OS.txt, joka sisältää kaikkien tärkeiden Linux -jakelujen nimet. Jos haluat lukea tiedoston käyttämättä 'kissa' -komentoa, voit suorittaa tämän tehtävän suorittamalla seuraavan komennon. Käytämme while -silmukkaa, joka lukee jokaisen rivin tiedostosta OS.txt ja tallentaa sisällön jokaiseen vaiheeseen muuttuvalle $ -riville, jonka voit näyttää myöhemmin.

Liitä seuraavat Linux -jakelujen nimet OS.txt -tiedostoon



CentOS
Ubuntu
Debian
LinuxMint $sillä aikaa lukealinja;
tehdä
heitti pois $ rivi;
tehty <OS.txt


Yllä olevasta komennosta saat seuraavan vastauksen pääteikkunaan:

Esimerkki 2: Tiedoston lukeminen bash -komentosarjan avulla

Luo bash-tiedosto ja lisää sitten alla mainittu koodi tähän tiedostoon tiedoston sisällön lukemiseksi. Voit tallentaa edellisen tekstitiedoston uuteen muuttujaan $ tiedostonimi ja muuttujaa $ n käytetään jokaisen rivin arvon säilyttämiseen. Nyt, kun käytät silmukkaa, luemme jokaisen rivin tiedostosta, jolla on tietty rivinumero.

#!/bin/bash
Tiedoston nimi='OS.txt'
n=1
sillä aikaa lukealinja;
tehdä
# jokaisen rivin lukemista varten
heitti pois 'Käyttöjärjestelmän jakelulinja nro.$ n:$ rivi''
n= $((n+1))
tehty < $ tiedostonimi

Tallenna tiedosto nimellä OSinfo.sh ja kirjoita seuraava komento päätelaitteeseen yllä olevan bash -komentosarjan suorittamiseksi.

$lyödäOSinfo.sh

Suorita nyt cat -komento nähdäksesi alkuperäisen tiedoston sisällön.

$kissaOS.txt

Vaihtoehtoinen tapa tiedostojen lukemiseen

Tiedostonimen välittäminen komennosta

Bash -tiedostoon sinun on lisättävä seuraava koodikomentosarja. Tässä skriptissä meidän on otettava tiedostonimi argumentiksi. Ensinnäkin argumentin arvon lukee $ 1 -muuttuja, jolla on tiedostonimi luettavaksi. Se tarkistaa, että tiedostonimi on olemassa määritetyssä paikassa, ja lukee samalla while -silmukalla tiedoston rivi riviltä, ​​joka on samanlainen kuin edellinen esimerkki.

#!/bin/bash
Tiedoston nimi=$ 1
sillä aikaa lukealinja;tehdä
# lukee jokaisen rivin
heitti pois $ rivi
tehty < $ tiedosto.txt

Tallenna yllä oleva komentosarja nimeltä Readline.sh ja suorita seuraava komento päätelaitteessa suorittaaksesi yllä mainitun komentosarjan:

Yllä olevassa tulostuksessa huomaat, että tiedosto 'OSinfo.txt' kulkee argumenttina ja 'OSinfo.txt' -sisältö näytetään ylimääräisten välilyöntien poistamisen jälkeen. Voit näyttää alkuperäisen tiedoston sisällön suorittamalla 'cat OSinfo.txt'.

Johtopäätös

Tässä artikkelissa olemme keskustelleet rivien lukemisesta bash -ohjelmoinnin while -silmukan avulla. Olemme toteuttaneet erilaisia ​​menetelmiä bash -komentosarjan avulla tai voit yksinkertaisesti käyttää tekstitiedostoa tiedoston lukemiseen rivi riviltä. Jos haluat tietää lisää esimerkkejä, voit käyttää yllä olevaa syntaksia käyttämällä myös järjestelmääsi. Toivottavasti pidit tästä opetusohjelmasta ja olet ainutlaatuinen sinulle. Tiedotetaan mahdollisista virheistä.