Pagrindinė skaitymo eilutės sintaksė
Ši sintaksė naudojama „bash shell“, norint nuskaityti failą naudojant „loop“:
tuo tarpu skaityti -rlinija;
daryti
išmetė '$ eilutė';
padaryta <input.file
Parinktis „-r“ aukščiau minėtoje sintaksėje buvo perduota skaityti komandai, kuri neleidžia interpretuoti pasvirojo brūkšnio. Parinktis „input_file“ nurodė failo, kurį norite pasiekti naudodami „read“ komandą, pavadinimą.
Vidinį laukų atskyriklį, sutrumpintą kaip IFS, galima naudoti prieš nustatant skaitymo komandą į nulinę eilutę, kuri neleidžia sutrumpinti priekinio ar galinio tarpų.
tuo tarpu IFS=skaityti -rlinija;
daryti
išmetė $ eilutė;
padaryta <input.file
Atidarykite terminalą naudodami sparčiuosius klavišus „Ctrl“ + „Alt“ + t, tada paleiskite toliau nurodytas komandas.
1 pavyzdys: Failo skaitymas eilutėje
Paimkime pavyzdį, kuriame tarkime, kad turime failą OS.txt, kuriame yra visų svarbių „Linux“ platinimų pavadinimai. Jei norite skaityti failą nenaudodami komandos „cat“, šiuo tikslu galite atlikti šią komandą, kad atliktumėte konkrečią užduotį. Mes naudosime ciklą „while“, kuris skaitys kiekvieną eilutę iš failo OS.txt ir kiekviename žingsnyje saugo turinį kintamoje $ eilutėje, kurią galėsite rodyti vėliau.
Įklijuokite šiuos Linux distribucijų pavadinimus į OS.txt
„CentOS“
Ubuntu
Debian
„LinuxMint“tuo tarpu skaitytilinija;
daryti
išmetė $ eilutė;
padaryta <OS.txt
Iš aukščiau pateiktos komandos terminalo lange gausite tokį atsakymą:
2 pavyzdys: Failo skaitymas naudojant „bash“ scenarijų
Sukurkite „bash“ failą ir pridėkite toliau nurodytą kodą šiame faile, kad perskaitytumėte failo turinį. Galite išsaugoti ankstesnį teksto failą į naują kintamąjį $ failo pavadinimas, o kintamasis $ n naudojamas kiekvienos eilutės vertei išlaikyti. Dabar, naudodamiesi ciklu while, mes perskaitysime kiekvieną eilutę iš failo su tam tikru eilutės numeriu.
#!/bin/bashfailo pavadinimas=„OS.txt“
n=1
tuo tarpu skaitytilinija;
daryti
#, kad perskaitytumėte kiekvieną eilutę
išmetė „OS paskirstymo linija Nr.$ n:$ eilutė'
n= $((n+1))
padaryta < $ failo pavadinimas
Išsaugokite failą pavadinimu OSinfo.sh ir įveskite šią komandą terminale, kad paleistumėte aukščiau pateiktą „bash“ scenarijų.
$muštiOSinfo.sh
Dabar paleiskite komandą cat, kad pamatytumėte pradinį failo turinį.
$katėOS.txt
Alternatyvus failų skaitymo metodas
Naudojant perduodamą failo pavadinimą iš komandos
„Bash“ faile turite pridėti šį kodo scenarijų. Šiame scenarijuje kaip argumentą turime priimti failo pavadinimą. Pirma, argumento vertę skaito 1 USD kintamasis, kurio failo pavadinimas yra skaitomas. Ji patikrins, ar failo pavadinimas yra nurodytoje vietoje, tada naudodami ciklo ciklą nuskaito failą eilutėmis po eilutės, panašų į ankstesnį pavyzdį.
#!/bin/bashfailo pavadinimas=1 USD
tuo tarpu skaitytilinija;daryti
# skaito kiekvieną eilutę
išmetė $ eilutė
padaryta < $ failas.txt
Išsaugokite aukščiau esantį scenarijų pavadinimu „Readline.sh“ ir vykdykite šią komandą terminale, kad paleistumėte pirmiau minėtą scenarijų:
Aukščiau pateiktoje išvestyje pastebėsite, kad failas „OSinfo.txt“ perduodamas kaip argumentas, o pašalinus papildomų tarpų bus rodomas „OSinfo.txt“ turinys. Pradinį failo turinį galite rodyti paleisdami „cat OSinfo.txt“.
Išvada
Šiame straipsnyje aptarėme, kaip skaityti eilutes naudojant „bash“ programavimo ciklą while. Mes įdiegėme skirtingus metodus, naudodami „bash“ scenarijų, arba galite tiesiog naudoti tekstinį failą, norėdami perskaityti failo eilutę po eilutės. Jei norite sužinoti daugiau pavyzdžių, tada naudodami aukščiau nurodytą sintaksę galite atlikti ir savo sistemoje. Tikiuosi, kad jums patiko ši pamoka ir ji jums bus unikali. Pranešime apie bet kokią klaidą.