Linux

Bash zápis do souboru

Bash zápis do souboru

Jedním z nejběžnějších úkolů při psaní skriptů Bash nebo při práci na příkazovém řádku systému Linux je čtení a zápis souborů.

Tento článek vysvětluje, jak psát text do souboru v Bash pomocí operátorů přesměrování a tričko příkaz.

Zápis do souboru pomocí operátorů přesměrování #

V Bash přesměrování výstupu umožňuje zachytit výstup z příkazu a zapsat jej do souboru.

Obecný formát pro přesměrování a zápis výstupu do souboru je následující:

výstup> název souboru výstup >> název souboru 

Musíte mít oprávnění k zápisu do souboru. Jinak se zobrazí chyba s odepřením oprávnění.

Zde je jednoduchý příklad, který ukazuje, jak přesměrovat výstup souboru echo příkaz do souboru:

echo "toto je řádek"> soubor.txt

Chcete-li zabránit přepsání existujících souborů, povolte pomocí volby „noclobber“ soubor vestavěný:

set -o noclobberecho "toto je řádek"> soubor.txt
bash: soubor.txt: nelze přepsat existující soubor 

The > | operátor umožňuje přepsat volbu Bash „noclobber“:

set -o noclobberecho "toto je řádek"> | soubor.txt

The >> operátor připojí výstup na konec souboru, místo aby soubor přepsal:

echo "toto je řádek" >> soubor.txt

Použijte printf příkaz pro vytvoření komplexního výstupu:

printf "Dobrý den, jsem% s.\ n "$ USER> soubor.txt

Chcete-li do souboru zapsat více řádků, použijte přesměrování dokumentu Here (Heredoc).

Můžete například předat obsah do kočka příkaz a zapište jej do souboru:

kočka << EOF > soubor.txt Aktuální pracovní adresář je: $ PWD Jste přihlášeni jako $ (whoami) EOF 

Chcete-li připojit řádky, změňte je > s >> před názvem souboru:

kočka << EOF >> soubor.txt Aktuální pracovní adresář je: $ PWD Jste přihlášeni jako $ (whoami) EOF 

Výstup libovolného příkazu můžete zapsat do souboru:

datum + "rok:% Y, měsíc:% m, den:% d"> soubor.txt

Výstup z datum příkaz bude zapsán do souboru.

Zápis do souboru pomocí tričko Příkaz #

The tričko příkaz čte ze standardního vstupu a zapisuje do standardního výstupu i do jednoho nebo více souborů současně.

echo "toto je řádek" | tee soubor.txt

The tričko výchozí chování příkazu je přepsat zadaný soubor, stejně jako > operátor. Chcete-li připojit výstup do souboru, vyvolajte příkaz pomocí -A (--připojit) možnost:

echo "toto je řádek" | tee -a soubor.txt

Pokud nechcete tričko Chcete-li zapsat na standardní výstup, můžete jej přesměrovat na / dev / null:

echo "toto je řádek" | tee soubor.txt> / dev / null

Chcete-li zapsat text do více než jednoho souboru, zadejte soubory jako argumenty pro tričko příkaz:

echo "toto je řádek" | tee file_1.soubor txt_2.soubor txt_3.txt

Další výhodou tričko příkaz je, že jej můžete použít ve spojení s sudo a zapisovat do souborů vlastněných jinými uživateli. Chcete-li přidat text do souboru, do kterého nemáte oprávnění k zápisu, předpřipravte ho sudo před tričko:

echo "toto je řádek" | sudo tee soubor.txt

The echo výstup příkazu je předán jako vstup do tričko, což zvyšuje oprávnění sudo a zapisuje text do souboru.

Závěr #

V Linuxu můžete k psaní textu do souboru použít > a >> operátoři přesměrování nebo tričko příkaz.

Máte-li jakékoli dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...