Existuje několik způsobů, jak číst a zapisovat do souboru v bash. Nejjednodušší způsob je použití operátorů „>“ a „>>“.
- Operátor „>“ přepíše existující data
- Operátor „>>“ připojí data
Obecný formát použití operátorů přesměrování je:
Data> Název souboruData >> Název souboru
Pochopme postup zápisu do souboru na příkladu:
Jak napsat soubor pomocí operátorů přesměrování
Jak bylo uvedeno výše, jednoduchý a přímý přístup k zápisu do souboru používá operátory přesměrování. Pokud například chcete změnit text již existujícího souboru, nejprve vytvořte textový soubor s názvem „testovací soubor.txt„A napište do něj cokoli:
Uložte textový soubor.
Do terminálu zadejte níže uvedený příkaz:
$ echo „Přepis existujícího textu v souboru“> testovací soubor.txt
Přes ždímání může být riskantní; proto je dobrým zvykem povolit „noclobber“. Nastavení „noclobber“ by zablokovalo přepsání jakéhokoli ukončujícího souboru.
$ set -o noclobber$ echo „Přepis existujícího textu v souboru“> testovací soubor.txt
Pokud ale chcete obejít „noclobber“, použijte „> |„Operátor místo„>„:
$ echo „Přepis existujícího textu v souboru“> | testovací soubor.txtNebo můžete jednoduše vypnout „noclobber“:
$ set + o noclobber
Tento příkaz ale odebere ochranu všem souborům.
Výše uvedený výstup naznačuje, že existující text byl přepsán. Nyní použijeme „>>„Operátor:
$ echo „Přidání textu k existujícímu textovému souboru“ >> testfile.txt
"echo„Není vždy ideální použít, protože pomocí něj nemůžete formátovat text, proto použijte„ printf “místo„ echo “k formátování textu, jak ukazuje následující příkaz:
$ printf „Vítejte \ n Toto je nový textový soubor."> Novysoubor.txt
Pojďme pochopit koncept s příkladem bash skriptu. Otevřete Vim zadáním „vim“ do terminálu. Pokud ve svém zařízení nemáte editor Vim, nainstalujte jej pomocí:
$ sudo apt install vimZadejte skript:
#! / bin / bashecho „Zadejte své jméno“
číst jméno
echo $ name> data_dir.txt
echo „Zadejte svůj věk“
číst věk
echo $ age >> data_dir.txt
cat data_dir.txt
„kočka”Příkaz se používá k vytváření a úpravám souborů. Uložte výše uvedený skript do Vim přepnutím režimu po stisknutí “EscKlíč a poté zadejte „: w myscript.sh“. Otevřete terminál a spusťte kód:
Jak napsat soubor pomocí Heredoc
Pokud chcete psát více řádků, nejjednodušší metodou je použití „Heredoc“. Zde je dokument, známý také jako „Heredoc“, víceúčelový blok kódu. Syntaxe Heredoc je:
Příkaz <<[-] Delimiter.
text / příkazy
.
Oddělovač
Jakýkoli řetězec lze použít místo „Oddělovače“ a „-“ lze také použít k odstranění jakýchkoli mezer v souboru. Pochopme to na jednoduchém příkladu:
#! / bin / bashkočka << TEXTFILE
Toto je textový soubor.
Tento soubor je vytvořen pomocí heredoc.
TEXTOVÝ SOUBOR
Výše uvedený příkaz „cat“ skriptu vytvoří textový soubor s názvem „TEXTFILE“ a zapíše text do právě vytvořeného souboru. Nyní uložte soubor pod názvem „myscript.sh“. Spusťte terminál a spusťte skript.
Jak napsat soubor pomocí příkazu Tee
Další metodou zápisu souboru je použití příkazu „Tee“. Jako název označující tento příkaz přijímá vstup a zapisuje do souboru a zobrazuje výstup současně. Ve výchozím nastavení příkaz „Tee“ přepíše existující data.
$ echo „Toto je nějaký text“ | tee textový soubor.txt
Chcete-li přidat, použijte -a:
$ echo „Toto je další text“ | tričko - textový soubor.txt
Chcete-li napsat více řádků, použijte:
$ echo „Přidávání textu do více souborů“ | tee textový soubor1.txt textfile2.txt textfile3.txt
Výše uvedený příkaz vytvoří tři soubory, pokud neexistují, a do každého z nich zapíše text.
Závěr
Tato příručka se zaměřuje na více přístupů k zápisu do souboru v bash s příklady. V bash skriptování existuje několik způsobů zápisu souboru, ale nejjednodušší je použití operátorů přesměrování „>“, „>>“. K zápisu více řádků lze použít „heredoc“, a pokud chcete zapsat stejná data na více řádků, je velmi užitečný příkaz „tee“.