Articles

Opakování obsahu souboru v Bash

často je to požadavek na čtení každého řádku ze souboru pomocí Bash skriptu. Existují různé přístupy ke čtení řádků tvoří soubor. V níže uvedeném příkladu jsme nejprve popsali, jak vytvořit ukázkový soubor a poté spustit skript, který čte tento ukázkový soubor.

Vytvořit soubor, Číst

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

spuštění výše uvedený kód nám dává následující výsledek −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Pomocí do-While

V tomto přístupu můžeme použít do-while číst soubor., Název souboru uvedeme jako vstup na konci souboru. Nejprve vytvoříme skript a udělíme mu oprávnění k provedení. Pak jen to může číst soubor a zobrazit výsledek.

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

spuštění výše uvedený kód nám dává následující výsledek −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Použití pro:

V další přístup, který jsme použili pro smyčce spolu s v bodě. Zde uložíme výsledek příkazu cat (což je každý řádek) do proměnné, která je součástí pro loop a echo proměnné.,

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

spuštění výše uvedený kód nám dává následující výsledek −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

pouze S echo

také můžeme získat obsah souboru pouze pomocí echo. Výsledek však vyjde jako řada řádků a vytiskne se jako jednořádkový výstup zobrazující kombinaci všech řádků.

echo $( < a_file.txt )

spuštění výše uvedený kód nám dává následující výsledek:

Monday Tuesday Wednesday Thursday Friday Saturday Sunday

Čtení Souboru s Prázdné Řádky

Pokud soubor se některé řádky, které jsou prázdné, pak jsme ca vyhnout se jim ve výstupu pomocí následující kód., To používá IFS (oddělovač vnitřního pole) je nastaven na prázdný řetězec, takže prázdné řádky jsou považovány za oddělovač polí a vyhýbají se výstupu. Za předpokladu, že mezi 3.a 4. řádkem jsou prázdné řádky, nebudou tato prázdná zástavní práva vytištěna.

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

spuštění výše uvedený kód nám dává následující výsledek −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Zveřejněny na 03-Jan-2020 11:45:05

Inzeráty