Articles

Hurkolja át a tartalmát egy fájlt bash

gyakran ez a követelmény, hogy olvassa el az egyes sorok egy fájlt egy bash script. Vannak különböző megközelítések olvasni a sorok alkotnak egy fájlt. Az alábbi példában először leírtuk, hogyan lehet létrehozni egy mintafájlt, majd futtatni egy szkriptet, amely elolvassa a mintafájlt.

hozzon létre egy fájlt a

# Open vi Editorvi a_file.txt# Input the below linesMondayTuesdayWednesdayThursdayFridaySaturdaySunday# cat the filecat a_file.txt

a fenti kód futtatása a következő eredményt adja nekünk −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

A Do-While

használatával ebben a megközelítésben do-while hurkot használunk egy fájl olvasásához., A fájl nevét bemenetként adjuk meg a fájl végén. Először létrehozunk egy szkriptet, majd megadjuk a végrehajtás engedélyét. Ezután csak a fájlt tudja elolvasni, majd megmutatni az eredményt.

#!/bin/bashwhile read LINEdo echo "$LINE"done < a_file.txt

a fenti kód futtatása a következő eredményt adja nekünk −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

a következő megközelítésben a For loop-ot használunk az in záradékkal együtt. Itt tároljuk a cat parancs eredményét (amely minden sor) egy változóban, amely része a For loop-nak, és visszhangozza a változót.,

#!/bin/bashfile=a_file.txtfor i in `cat $file`doecho "$i"done

a fenti kód futtatása a következő eredményt adja nekünk −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

csak echo

a fájl tartalmát csak echo használatával is megkaphatjuk. De az eredmény jön ki, mint egy sor sor, majd nyomtatott ki, mint egysoros kimenet mutatja kombinációja az összes sort.

echo $( < a_file.txt )

a fenti kód futtatása a következő eredményt adja:

Monday Tuesday Wednesday Thursday Friday Saturday Sunday

üres sorokkal rendelkező fájl olvasása

Ha egy fájlnak vannak üres sorai, akkor a következő kód használatával elkerülhetjük őket a kimenetben., Ez az IFS (internal Field Separator) üres karakterláncot használ, így az üres sorokat mezőelválasztóként kezelik, majd elkerülik a kimenetet. Feltételezve, hogy üres sorok vannak a 3.és a 4. sor között, ezek az üres zálogjogok nem lesznek kinyomtatva.

#!/bin/bashwhile IFS = read -r LINEdo echo "$LINE"done < a_file.txt

a fenti kód ad nekünk a következő eredmény −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Közzé 03-Jan-2020 11:45:05

Reklámok