Eno najpogostejših nalog pri pisanju skriptov Bash ali delu v ukazni vrstici Linuxa je branje in pisanje datotek.
V tem članku je razloženo, kako v Bash zapisati besedilo v datoteko z uporabo operaterjev preusmeritve in majica
ukaz.
Zapis v datoteko s pomočjo operaterjev preusmeritve #
V storitvi Bash preusmeritev izhoda omogoča zajem izhoda iz ukaza in zapis v datoteko.
Splošna oblika za preusmerjanje in zapisovanje izhodnih podatkov v datoteko je naslednja:
output> ime datoteke output >> ime datoteke
- The
>
preusmerjevalni operater zapisuje izhod v dano datoteko. Če datoteka obstaja, je okrnjena na nič. V nasprotnem primeru se datoteka ustvari. Pri uporabi tega operaterja bodite previdni, saj lahko prepišete pomembno datoteko. - The
>>
preusmerjevalni operater doda izhod v dano datoteko. Datoteka se ustvari, če ne obstaja.
V datoteko morate imeti dovoljenja za pisanje. V nasprotnem primeru boste prejeli napako, zavrnjeno.
Tu je preprost primer, ki prikazuje, kako preusmerimo izhodne podatke odmev
ukaz v datoteko:
echo "to je vrstica"> datoteka.txt
Če želite preprečiti prepisovanje obstoječih datotek, omogočite možnost »noclobber« s nastavite
vgrajeno:
set -o noclobber
echo "to je vrstica"> datoteka.txt
bash: datoteka.txt: obstoječe datoteke ni mogoče prepisati
The > |
operater vam omogoča, da preglasite možnost Bash "noclobber":
set -o noclobber
echo "to je vrstica"> | mapa.txt
The >>
operator doda izhod na konec datoteke, namesto da bi jo prepisal:
echo "to je vrstica" >> datoteka.txt
Uporabi printf
ukaz za izdelavo kompleksnega izhoda:
printf "Pozdravljeni, jaz sem% s.\ n "$ USER> datoteka.txt
Če želite v datoteko zapisati več vrstic, uporabite preusmeritev Here document (Heredoc).
Vsebino lahko na primer prenesete na mačka
ukaz in ga zapišite v datoteko:
mačka << EOF > mapa.txt Trenutni delovni imenik je: $ PWD Prijavljeni ste kot $ (whoami) EOF
Če želite dodati vrstice, spremenite >
s >>
pred imenom datoteke:
mačka << EOF >> datoteka.txt Trenutni delovni imenik je: $ PWD Prijavljeni ste kot $ (whoami) EOF
Izpis katerega koli ukaza lahko zapišete v datoteko:
datum + "Leto:% Y, Mesec:% m, Dan:% d"> datoteka.txt
Rezultat datum
ukaz bo zapisan v datoteko.
Pisanje v datoteko z majica
Ukaz št
The majica
ukaz bere s standardnega vhoda in hkrati zapisuje v standardni izhod in eno ali več datotek.
echo "to je črta" | čajna datoteka.txt
The majica
ukaz je privzeto obnašati določeno datoteko, enako kot >
operater. Če želite datoteki dodati izhod, pokličite ukaz z -a
(--priloži
) možnost:
echo "to je črta" | tee-datoteka.txt
Če nočete majica
če želite zapisovati v standardni izhod, ga lahko preusmerite na / dev / null
:
echo "to je črta" | čajna datoteka.txt> / dev / null
Če želite besedilo zapisati v več datotek, datoteke določite kot argumente majica
ukaz:
echo "to je črta" | tee file_1.txt datoteka_2.txt datoteka_3.txt
Še ena prednost majica
ukaz je, da ga lahko uporabljate skupaj z sudo
in pišite v datoteke, ki so v lasti drugih uporabnikov. Če želite besedilo dodati datoteki, za katero nimate dovoljenj za pisanje, dodajte sudo
prej majica
:
echo "to je črta" | datoteka sudo tee.txt
The odmev
izhod ukaza se posreduje kot vhod v majica
, ki zviša dovoljenja za sudo in zapiše besedilo v datoteko.
Zaključek #
V Linuxu za pisanje besedila v datoteko uporabite >
in >>
preusmerjevalni operaterji ali majica
ukaz.
Če imate kakršna koli vprašanja ali povratne informacije, vas prosimo, da pustite komentar.