Existuje niekoľko spôsobov, ako čítať a písať súbor v bash. Najjednoduchším spôsobom je použiť operátory> a >>.
- > operátor existujúce údaje prepíše
- >> operátor pripojí údaje
Obecný formát používania operátorov presmerovania je:
Údaje> Názov súboru
Údaje >> Názov súboru
Rozumieme postupu zápisu do súboru na príklade:
Ako napísať súbor pomocou operátorov presmerovania
Ako bolo uvedené vyššie, jednoduchý a priamy prístup na zápis do súboru používa operátory presmerovania. Ak napríklad chcete zmeniť text už existujúceho súboru, najskôr vytvorte textový súbor s názvom testfile.txt a napíšte do nej čokoľvek:
Uložte textový súbor.
Do terminálu zadajte nižšie uvedený príkaz:
$ echo Prepísanie existujúceho textu v súbore> testfile.txt
Prekrútenie môže byť riskantné; preto je dobrou praxou povoliť noclobber. Nastavenie noclobber by zablokovalo akékoľvek prepísanie na akýkoľvek ukončujúci súbor.
$ set –o noclobber$ echo Prepísanie existujúceho textu v súbore> testfile.txt
Ak však chcete obísť noclobber, použite príkaz > | operátor namiesto > :
$ echo Prepísanie existujúceho textu v súbore> | testfile.txtAlebo môžete jednoducho deaktivovať noclobber:
$ set + alebo noclobber
Tento príkaz však odstráni ochranu zo všetkých súborov.
Vyššie uvedený výstup naznačuje, že existujúci text bol prepísaný. Teraz použijeme >> operátor:
$ echo Pripojenie textu k existujúcemu textovému súboru >> testfile.txt
zahodil nie je vždy ideálne použiť, pretože nemôžete pomocou neho formátovať text, preto namiesto ozveny na formátovanie textu použite printf, ako ukazuje nasledujúci príkaz:
$ printf Vitajte n Toto je nový textový súbor. > newtestfile.txt
Poďme porozumieť konceptu na príklade bash skriptu. Otvorte Vim zadaním vim do terminálu. Ak vo svojom zariadení nemáte editor Vim, nainštalujte si ho pomocou:
$ sudo apt install vimNapíšte skript:
#! /bin/bashecho Zadajte svoje meno
prečítaj si meno
echo $ name> data_dir.txt
echo Zadajte svoj vek
čítať vek
echo $ vek >> data_dir.txt
mačka data_dir.txt
The kat príkaz sa používa na vytváranie a úpravu súborov. Vyššie uvedený skript uložte do Vim prepnutím režimu po stlačení Esc kľúč a potom zadajte : v myscript.sh . Otvorte terminál a spustite kód:
Ako napísať súbor pomocou Heredoc
Ak chcete napísať viac riadkov, najľahšou metódou je použiť Heredoc. Tu je dokument, známy tiež ako Heredoc, viacúčelovým blokom kódu. Syntax Heredocu je:
Velenie<<[-] Delimiter.
text/príkazy
.
Oddeľovač
Namiesto oddeľovača je možné použiť ľubovoľný reťazec a - je tiež možné použiť na odstránenie medzier na karte v súbore. Poďme to pochopiť na jednoduchom príklade:
#! /bin/bashkat<< TEXTFILE
Toto je textový súbor.
Tento súbor je vytvorený pomocou heredoc.
TEXTFILE
Vyššie uvedený príkaz script cat vytvorí textový súbor s názvom TEXTFILE a zapíše text do práve vytvoreného súboru. Teraz uložte súbor pod názvom myscript.sh . Spustite terminál a spustite skript.
Ako napísať súbor pomocou príkazu Tee
Ďalšou metódou zápisu súboru je príkaz Tee. Ako naznačuje názov, tento príkaz preberá vstup a zapisuje do súboru a súčasne zobrazuje výstup. Štandardne príkaz Tee prepíše existujúce údaje.
$ echo Toto je nejaký text | tričko textfile.txt
Na pridanie použitia –a:
$ echo Toto je ďalší text | tričko - textový súbor.txt
Ak chcete napísať viac riadkov, použite:
$ echo Pridávanie textu do viacerých súborov | tričko textfile1.txt textfile2.txt textfile3.txt
Vyššie uvedený príkaz vytvorí tri súbory, ak neexistujú, a do každého z nich napíše text.
Záver
Táto príručka sa zameriava na viacero prístupov k zápisu do súboru v bash s príkladmi. V skripte bash existuje niekoľko spôsobov, ako napísať súbor, ale najjednoduchší je použiť operátory presmerovania>, >>. Na zápis viacerých riadkov je možné použiť heredoc, a ak chcete zapísať rovnaké údaje do viacerých riadkov, potom je príkaz tee celkom šikovný.