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/bashTiedoston 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/bashTiedoston 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ä.