Bash: při čtení řádku

Bash While Read Line

Když pracujete na bash skriptech, někdy možná budete muset přečíst soubor řádek po řádku. Vysvětlíme to na příkladu. V textovém souboru máte nějaká data, která by měla být spuštěna nebo zpracována pomocí skriptu. Spuštění skriptu bash ke zpracování textového souboru se tedy velmi liší. Chcete -li číst soubor řádek po řádku, musíte dodržet zadanou syntaxi. Tento článek vám pomůže přečíst řádek ze souboru pomocí cyklu while v Bash.

Základní syntaxe řádku pro čtení

Následující syntaxe se používá pro prostředí bash ke čtení souboru pomocí cyklu while:



zatímco číst -rčára;
dělat
vyhodil '$ řádek';
Hotovo <vložte soubor

Možnost „-r“ ve výše uvedené syntaxi předaná příkazu ke čtení, která zabraňuje interpretaci zpětných lomítek. Volba „input_file“ reprezentuje název vašeho souboru, ke kterému chcete získat přístup pomocí příkazu „read“.



Interní oddělovač polí zkráceně jako IFS lze použít před nastavením příkazu read na null řetězec, který zabraňuje ořezávání úvodních nebo koncových prázdných znaků.



zatímco IFS=číst -rčára;
dělat
vyhodil $ řádek;
Hotovo <vložte soubor

Otevřete terminál pomocí klávesové zkratky Ctrl + Alt + t a poté na něm spusťte následující příkazy.

Příklad č. 1: Čtení souboru řádek po řádku

Vezměme si příklad, ve kterém předpokládejme, že máme soubor s názvem OS.txt obsahující názvy všech důležitých distribucí Linuxu. Pokud tedy chcete přečíst soubor bez použití příkazu „kočka“, můžete pro tento účel provést následující příkaz k provedení konkrétního úkolu. Použijeme smyčku while, která přečte každý řádek ze souboru OS.txt a uloží obsah v každém kroku do proměnné $ line, kterou můžete zobrazit později.

Do souboru OS.txt vložte následující názvy distribucí Linuxu



CentOS
Ubuntu
Debian
LinuxMint $zatímco čístčára;
dělat
vyhodil $ řádek;
Hotovo <OS.txt


Z výše uvedeného příkazu dostanete v okně terminálu následující odpověď:

Příklad č. 2: Čtení souboru pomocí skriptu bash

Vytvořte soubor bash a poté přidejte níže uvedený kód do tohoto souboru, abyste si mohli přečíst obsah souboru. Předchozí textový soubor můžete uložit do nové proměnné $ filename a proměnná $ n se používá k zachování hodnoty každého řádku. Nyní pomocí cyklu while přečteme každý řádek ze souboru s konkrétním číslem řádku.

#!/bin/bash
název souboru='OS.txt'
n=1
zatímco čístčára;
dělat
# pro přečtení každého řádku
vyhodil „Distribuční linka OS č.$ n:$ řádek'
n= $((n+1))
Hotovo < $ název_souboru

Uložte soubor pod názvem OSinfo.sh a zadejte na terminálu následující příkaz, abyste spustili výše uvedený skript bash.

$bashOSinfo.sh

Nyní spusťte příkaz cat a zobrazte původní obsah souboru.

$kočkaOS.txt

Alternativní metoda pro čtení souborů

Použití předávání názvu souboru z příkazu

V souboru bash musíte přidat následující skript kódu. V tomto skriptu musíme jako argument brát název souboru. Nejprve je hodnota argumentu přečtena proměnnou $ 1, která má název souboru pro čtení. Zkontroluje, zda název souboru existuje na zadaném místě, poté pomocí cyklu while přečte soubor řádek po řádku podobně jako v předchozím příkladu.

#!/bin/bash
název souboru=1 $
zatímco čístčára;dělat
# čtení každého řádku
vyhodil $ řádek
Hotovo < $ soubor.txt

Uložte výše uvedený skript s názvem „Readline.sh“ a spusťte na terminálu následující příkaz pro spuštění výše uvedeného skriptu:

Ve výše uvedeném výstupu uvidíte, že soubor „OSinfo.txt“ prochází jako argument a obsah souboru „OSinfo.txt“ se zobrazí po odstranění nadbytečných mezer. Původní obsah souboru můžete zobrazit spuštěním souboru „cat OSinfo.txt“.

Závěr

V tomto článku jsme diskutovali o tom, jak číst řádky pomocí smyčky while v programování bash. Implementovali jsme různé metody pomocí skriptu bash nebo můžete jednoduše použít textový soubor k provedení čtení souboru řádek po řádku. Máte-li zájem dozvědět se více příkladů, můžete pomocí výše uvedené syntaxe provést také ve svém systému. Doufám, že se vám tento návod líbil a bude pro vás jedinečný. Dejte nám vědět v případě jakékoli chyby.