Articles

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

Julkaistu 03-Jan-2020 11:45:05

Mainokset