Jednou z najbežnejších úloh pri písaní skriptov Bash alebo pri práci na príkazovom riadku systému Linux je čítanie a zápis súborov.
Tento článok vysvetľuje, ako písať text do súboru v Bashi pomocou operátorov presmerovania a tričko
príkaz.
Zápis do súboru pomocou operátorov presmerovania #
V Bashi presmerovanie výstupu umožňuje zachytiť výstup z príkazu a zapísať ho do súboru.
Všeobecný formát pre presmerovanie a zápis výstupu do súboru je nasledovný:
výstup> názov súboru výstup >> názov súboru
- The
>
operátor presmerovania zapíše výstup do daného súboru. Ak súbor existuje, je skrátený na nulovú dĺžku. V opačnom prípade sa súbor vytvorí. Pri používaní tohto operátora buďte mimoriadne opatrní, pretože môžete prepísať dôležitý súbor. - The
>>
operátor presmerovania pripojí výstup k danému súboru. Súbor sa vytvorí, ak neexistuje.
Musíte mať oprávnenie na zápis do súboru. V opačnom prípade sa zobrazí chyba zamietnutá s povolením.
Tu je jednoduchý príklad, ktorý ukazuje, ako presmeruje výstup súboru ozvena
príkaz do súboru:
echo "toto je riadok"> súbor.TXT
Ak chcete zabrániť prepisovaniu existujúcich súborov, povoľte voľbu „noclobber“ pomocou tlačidla nastaviť
zabudované:
set -o noclobber
echo "toto je riadok"> súbor.TXT
bash: súbor.txt: nie je možné prepísať existujúci súbor
The > |
operátor umožňuje prepísať voľbu Bash „noclobber“:
set -o noclobber
echo "toto je riadok"> | spis.TXT
The >>
operátor pripojí výstup na koniec súboru, namiesto toho, aby súbor prepísal:
echo "toto je riadok" >> súbor.TXT
Použi printf
príkaz na vytvorenie komplexného výstupu:
printf „Dobrý deň, som% s.\ n "$ USER> súbor.TXT
Ak chcete do súboru zapísať viac riadkov, použite presmerovanie dokumentu Here (Heredoc).
Môžete napríklad preniesť obsah do kat
príkaz a zapíšeme ho do súboru:
kat << EOF > spis.txt Aktuálny pracovný adresár je: $ PWD Ste prihlásený ako $ (whoami) EOF
Ak chcete riadky pridať, zmeňte ich >
s >>
pred názvom súboru:
kat << EOF >> spis.txt Aktuálny pracovný adresár je: $ PWD Ste prihlásený ako $ (whoami) EOF
Výstup ľubovoľného príkazu môžete zapísať do súboru:
dátum + "Rok:% Y, Mesiac:% m, Deň:% d"> súbor.TXT
Výstupom z dátum
príkaz sa zapíše do súboru.
Zápis do súboru pomocou tričko
Príkaz #
The tričko
príkaz číta zo štandardného vstupu a zapisuje do štandardného výstupu aj do jedného alebo viacerých súborov súčasne.
echo "toto je riadok" | tee súbor.TXT
The tričko
predvoleným správaním príkazu je prepísať zadaný súbor, rovnako ako príkaz >
operátor. Ak chcete pripojiť výstup do súboru, vyvolajte príkaz pomocou -a
(--pridať
) možnosť:
echo "toto je riadok" | tee -a súbor.TXT
Ak nechcete tričko
Ak chcete zapísať na štandardný výstup, môžete ho presmerovať na / dev / null
:
echo "toto je riadok" | tee súbor.txt> / dev / null
Ak chcete text napísať do viac ako jedného súboru, zadajte súbory ako argumenty pre tričko
príkaz:
echo "toto je riadok" | tee file_1.súbor txt_2.súbor txt_3.TXT
Ďalšou výhodou tričko
príkaz je, že ho môžete použiť v spojení s sudo
a zapisovať do súborov vo vlastníctve iných používateľov. Ak chcete pridať text do súboru, do ktorého nemáte oprávnenie na zápis, pridajte predponu sudo
predtým tričko
:
echo "toto je riadok" | sudo tee súbor.TXT
The ozvena
príkazový výstup je odovzdaný ako vstup do tričko
, čím sa zvýšia oprávnenia sudo a zapíše text do súboru.
Záver #
V systéme Linux môžete na zápis textu do súboru použiť znak >
a >>
operátory presmerovania alebo tričko
príkaz.
Ak máte akékoľvek otázky alebo spätnú väzbu, neváhajte zanechať komentár.