Üks levinumaid ülesandeid Bashi skriptide kirjutamisel või Linuxi käsureal töötamisel on failide lugemine ja kirjutamine.
Selles artiklis selgitatakse, kuidas kirjutada teksti Bashi faili, kasutades ümbersuunamisoperaatoreid ja tee
käsk.
Faili kirjutamine ümbersuunamisoperaatorite abil #
Bashis võimaldab väljundi ümbersuunamine haarata käsu väljundi ja kirjutada selle faili.
Väljundi faili ümbersuunamise ja kirjutamise üldine vorming on järgmine:
väljund> failinimi väljund >> failinimi
- The
>
ümbersuunamisoperaator kirjutab väljund antud faili. Kui fail on olemas, kärbitakse see nulli pikkuseks. Vastasel juhul luuakse fail. Selle operaatori kasutamisel olge eriti ettevaatlik, kuna võite olulise faili üle kirjutada. - The
>>
ümbersuunamisoperaator lisab väljundi antud faili. Fail luuakse, kui seda pole olemas.
Teil peavad olema faili kirjutamisõigused. Vastasel juhul saate vea luba keelatud.
Siin on lihtne näide, mis näitab, kuidas kaja
käsk faili:
kaja "see on rida"> fail.txt
Olemasolevate failide ülekirjutamise vältimiseks lubage valikuga „noklobber” seatud
sisseehitatud:
set -o noklobar
kaja "see on rida"> fail.txt
bash: fail.txt: ei saa olemasolevat faili üle kirjutada
The > |
operaator lubab teil tühistada Bashi valiku "noklobar":
set -o noklobar
kaja "see on rida"> | faili.txt
The >>
operaator lisab väljundi faili lõppu, selle asemel, et fail üle kirjutada:
kaja "see on rida" >> fail.txt
Kasuta printf
käsk keeruka väljundi loomiseks:
printf "Tere, ma olen% s.\ n "$ USER> fail.txt
Kui soovite faili kirjutada mitu rida, kasutage ümbersuunamist siin dokumendi (Heredoc) abil.
Näiteks saate sisu edastada kass
käsk ja kirjutage see faili:
kass << EOF > faili.txt Praegune töökataloog on: $ PWD Olete sisse logitud kui $ (whoami) EOF
Ridade lisamiseks muutke >
koos >>
enne failinime:
kass << EOF >> fail.txt Praegune töökataloog on: $ PWD Olete sisse logitud kui $ (whoami) EOF
Mis tahes käsu väljundi saate kirjutada faili:
kuupäev + "aasta:% Y, kuu:% m, päev:% d"> fail.txt
Väljund kuupäev
käsk kirjutatakse faili.
Faili kirjutamine faili abil tee
Käsk nr
The tee
käsk loeb standardsisendist ja kirjutab korraga nii standardsesse väljundisse kui ka ühte või mitmesse faili.
kaja "see on rida" | tee fail.txt
The tee
käsu vaikekäitumine on määratud faili ülekirjutamine, sama mis failiga >
operaator. Väljundi lisamiseks failile kutsuge käsk käsuga -a
(--lisama
) variant:
kaja "see on rida" | tee -a fail.txt
Kui te ei soovi tee
standardväljundisse kirjutamiseks saate selle ümber suunata / dev / null
:
kaja "see on rida" | tee fail.txt> / dev / null
Teksti kirjutamiseks mitmesse faili määrake failid argumendina failile tee
käsk:
kaja "see on rida" | tee fail_1.txt fail_2.txt fail_3.txt
Teine eelis tee
käsk on, et saate seda kasutada koos sudo
ja kirjutage teistele kasutajatele kuuluvatesse failidesse. Teksti lisamiseks faili, millele teil pole kirjutamisõigusi, eelista sudo
enne tee
:
kaja "see on rida" | sudo tee fail.txt
The kaja
käsu väljund edastatakse sisendina tee
, mis tõstab sudo õigusi ja kirjutab teksti faili.
Järeldus #
Linuxis saate teksti faili kirjutamiseks kasutada nuppu >
ja >>
ümbersuunamise operaatorid või tee
käsk.
Kui teil on küsimusi või tagasisidet, jätke julgelt kommentaar.