Viena iš dažniausiai pasitaikančių užduočių rašant „Bash“ scenarijus ar dirbant „Linux“ komandinėje eilutėje yra failų skaitymas ir rašymas.
Šiame straipsnyje paaiškinta, kaip rašyti tekstą į failą „Bash“, naudojant peradresavimo operatorius ir tee
komandą.
Rašymas į failą naudojant peradresavimo operatorius #
Programoje „Bash“ išvesties peradresavimas leidžia užfiksuoti komandos išvestį ir įrašyti ją į failą.
Bendras išvesties nukreipimo ir įrašymo į failą formatas yra toks:
išvestis> failo išvestis >> failo vardas
- The
>
peradresavimo operatorius įrašo išvestį į nurodytą failą. Jei failas egzistuoja, jis sutrumpinamas iki nulio ilgio. Priešingu atveju failas yra sukurtas. Būkite ypač atsargūs naudodami šį operatorių, nes galite perrašyti svarbų failą. - The
>>
peradresavimo operatorius prideda išvestį prie nurodyto failo. Failas sukuriamas, jei jo nėra.
Turite turėti failo rašymo teises. Kitu atveju gausite atsisakymo suteikti leidimą klaidą.
Čia yra paprastas pavyzdys, parodantis, kaip peradresuoti aidas
komanda į failą:
echo "this is a line"> failas.txt
Norėdami išvengti esamų failų perrašymo, įjunkite parinktį „nokloberis“ rinkinys
pastatytas:
rinkinys -o noklobistas
echo "this is a line"> failas.txt
bash: failas.txt: negalima perrašyti esamo failo
The > |
operatorius leidžia nepaisyti parinkties „Nashlobber“ „Bash“:
rinkinys -o noklobistas
aidas "tai yra eilutė"> | failą.txt
The >>
operatorius prideda išvestį prie failo pabaigos, o ne perrašo failą:
echo „tai yra eilutė“ >> failas.txt
Naudoti printf
komanda sukurti sudėtingą išvestį:
printf "Sveiki, aš% s.\ n "$ USER> failas.txt
Jei norite į failą įrašyti kelias eilutes, naudokite „Here document“ („Heredoc“) peradresavimą.
Pvz., Galite perduoti turinį katė
komandą ir užrašykite ją į failą:
katė << EOF > failą.txt Dabartinis darbo katalogas yra: $ PWD Jūs esate prisijungę kaip $ (whoami) EOF
Norėdami pridėti eilučių, pakeiskite >
su >>
prieš failo pavadinimą:
katė << EOF >> failas.txt Dabartinis darbo katalogas yra: $ PWD Jūs esate prisijungę kaip $ (whoami) EOF
Bet kurios komandos išvestį galite įrašyti į failą:
data + "Metai:% Y, Mėnuo:% m, Diena:% d"> failas.txt
Išvestis data
komanda bus įrašyta į failą.
Rašymas į failą naudojant tee
Komanda Nr
The tee
komanda nuskaito iš standartinės įvesties ir vienu metu rašo tiek į standartinę išvestį, tiek į vieną ar daugiau failų.
aidas "tai yra linija" | tee failas.txt
The tee
Numatytasis komandos elgesys yra perrašyti nurodytą failą, kaip ir >
operatorius. Norėdami pridėti išvestį prie failo, iškvieskite komandą naudodami -a
(--pridėti
) variantas:
aidas "tai yra linija" | tee -a byla.txt
Jei nenorite tee
norėdami rašyti į standartinę išvestį, galite ją peradresuoti / dev / null
:
aidas "tai yra linija" | tee failas.txt> / dev / null
Norėdami parašyti tekstą į daugiau nei vieną failą, nurodykite failus kaip argumentus prie tee
komanda:
aidas "tai yra linija" | tee file_1.txt failas_2.txt failas_3.txt
Dar vienas privalumas tee
komanda yra tai, kad galite jį naudoti kartu su sudo
ir rašyti į failus, priklausančius kitiems vartotojams. Jei norite pridėti tekstą prie failo, kuriam neturite rašymo leidimų, iš anksto nurodykite sudo
prieš tai tee
:
aidas "tai yra linija" | sudo tee failas.txt
The aidas
komandos išvestis perduodama kaip įvestis į tee
, kuris padidina sudo teises ir įrašo tekstą į failą.
Išvada Nr
Jei naudojate „Linux“, norėdami rašyti tekstą į failą, naudokite >
ir >>
peradresavimo operatoriai arba tee
komandą.
Jei turite klausimų ar atsiliepimų, palikite komentarą.