Ako napísať do súboru v Bash

How Write File Bash



Jednou zo základných úloh, ktoré robíme pri práci so skriptovaním bash, je čítanie a zápis súborov. V tejto príručke sa zameriame na to, ako čítať súbory v bash a ako ich upravovať.

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.txt

Alebo 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 vim

Napíšte skript:

#! /bin/bash
echo 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/bash

kat<< 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ý.