Tiedoston sisällön läpikäyminen Bash
usein on vaatimus lukea jokainen rivi tiedostosta bash-skriptin avulla. On olemassa erilaisia lähestymistapoja lukea linjat muodostavat tiedoston. Alla olevassa esimerkissä olemme ensin kuvailleet, miten luodaan näytetiedosto ja sitten suoritetaan skripti, joka lukee kyseisen näytetiedoston.
Luo tiedosto Lukea
# Open vi Editorvi a_file.txt# Input the below linesMondayTuesdayWednesdayThursdayFridaySaturdaySunday# cat the filecat a_file.txt
Käynnissä edellä koodi antaa meille seuraavat tulos −
MondayTuesdayWednesdayThursdayFridaySaturdaySunday
Käyttämällä Do-While –
tämä lähestymistapa käyttää do-while-silmukka lukea tiedoston., Annamme tiedoston nimen syötteenä tiedoston lopussa. Ensin luomme skriptin ja annamme sille toteutusluvan. Sitten vain se voi lukea tiedoston ja näyttää tuloksen.
#!/bin/bashwhile read LINEdo echo "$LINE"done < a_file.txt
Käynnissä edellä koodi antaa meille seuraavat tulos −
MondayTuesdayWednesdayThursdayFridaySaturdaySunday
Käyttäen ja
ensi lähestymistapa käyttää silmukka yhdessä kohdassa. Tässä Tallennamme Cat-komennon (joka on kukin rivi) tuloksen muuttujaan, joka on osa Loopia ja echo muuttujaa.,
#!/bin/bashfile=a_file.txtfor i in `cat $file`doecho "$i"done
Käynnissä edellä koodi antaa meille seuraavat tulos −
MondayTuesdayWednesdayThursdayFridaySaturdaySunday
vain echo
Voimme myös saada tiedoston sisältöä käyttämällä vain kaiku. Mutta tulos tulee ulos jonona ja tulostettuna yhden rivin ulostulona, joka osoittaa kaikkien rivien yhdistelmän.
echo $( < a_file.txt )
Käynnissä edellä koodi antaa meille seuraavan tuloksen:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Lukeminen-Tiedoston kanssa Tyhjät Rivit
Jos tiedosto on joitakin rivit, jotka ovat tyhjiä niin me ca välttää niitä vuonna lähtö käyttämällä seuraavaa koodia., Tämä käyttää IFS (sisäinen Kenttä Erotin) on asetettu tyhjä merkkijono niin, että tyhjiä rivejä kohdellaan kuin kentän erotin ja välttää tuotos. Olettaen, että 3.ja 4. rivin välillä on tyhjiä rivejä, näitä tyhjiä lienejä ei paineta.
#!/bin/bashwhile IFS = read -r LINEdo echo "$LINE"done < a_file.txt
Käynnissä edellä koodi antaa meille seuraavat tulos −
MondayTuesdayWednesdayThursdayFridaySaturdaySunday