Linux

Bash Rakstīt failā

Bash Rakstīt failā

Viens no visbiežāk sastopamajiem uzdevumiem, rakstot Bash skriptus vai strādājot pie Linux komandrindas, ir failu lasīšana un rakstīšana.

Šajā rakstā ir paskaidrots, kā rakstīt tekstu failā Bash, izmantojot novirzīšanas operatorus un tee komandu.

Rakstīšana failā, izmantojot novirzīšanas operatorus #

Programmā Bash izvades novirzīšana ļauj tvert komandas izvadi un ierakstīt failā.

Izvades novirzīšanas un rakstīšanas uz failu vispārējais formāts ir šāds:

izvade> faila izeja >> faila nosaukums 

Jums jābūt faila rakstīšanas atļaujām. Pretējā gadījumā jūs saņemsit kļūdu par atteiktu atļauju.

Šeit ir vienkāršs piemērs, kas parāda, kā novirzīt atbalss komanda failam:

echo "this is a line"> fails.txt

Lai nepieļautu esošo failu pārrakstīšanu, iespējojiet opciju “noclobber” ar komplekts iebūvēts:

set -o noklobersecho "this is a line"> fails.txt
bash: fails.txt: nevar pārrakstīt esošo failu 

The > | operators ļauj ignorēt opciju Bash “noclobber”:

set -o noklobersatbalss "šī ir līnija"> | failu.txt

The >> operators pievieno izvadi faila beigām, nevis pārraksta failu:

atbalss "šī ir līnija" >> fails.txt

Izmantojiet printf komanda, lai izveidotu sarežģītu izvadi:

printf "Sveiki, es esmu% s.\ n "$ USER> fails.txt

Ja vēlaties failā ierakstīt vairākas rindas, izmantojiet novirzīšanu Šeit dokuments (Heredoc).

Piemēram, jūs varat nodot saturu kaķis komandu un ierakstiet to failā:

kaķis << EOF > failu.txt Pašreizējais darba direktorijs ir: $ PWD Jūs esat pieteicies kā $ (whoami) EOF 

Lai pievienotu rindas, mainiet > ar >> pirms faila nosaukuma:

kaķis << EOF >> fails.txt Pašreizējais darba direktorijs ir: $ PWD Jūs esat pieteicies kā $ (whoami) EOF 

Jebkuras komandas izvadi varat ierakstīt failā:

datums + "Gads:% Y, Mēnesis:% m, Diena:% d"> fails.txt

Izvade datums komanda tiks ierakstīta failā.

Rakstīšana failā, izmantojot tee Komanda #

The tee komanda nolasa no standarta ievades un vienlaikus raksta gan standarta izvadē, gan vienā vai vairākos failos.

atbalss "šī ir līnija" | tee fails.txt

The tee komandas noklusējuma rīcība ir norādītā faila pārrakstīšana, tāpat kā > operators. Lai pievienotu izvadi failam, izsauciet komandu ar -a (--pievienot) variants:

atbalss "šī ir līnija" | tee - fails.txt

Ja jūs nevēlaties tee lai rakstītu uz standarta izvadi, varat to novirzīt uz / dev / null:

atbalss "šī ir līnija" | tee fails.txt> / dev / null

Lai tekstu ierakstītu vairāk nekā vienā failā, norādiet failus kā argumentus failam tee komanda:

atbalss "šī ir līnija" | tee file_1.txt file_2.txt fails_3.txt

Vēl viena priekšrocība tee komanda ir tā, ka jūs varat to izmantot kopā ar sudo un rakstīt uz failiem, kas pieder citiem lietotājiem. Lai pievienotu tekstu failam, kuram jums nav rakstīšanas atļauju, veiciet iepriekšēju iestatījumu sudo pirms tee:

atbalss "šī ir līnija" | sudo tee fails.txt

The atbalss komandas izeja tiek nodota kā ievade tee, kas paaugstina sudo atļaujas un raksta tekstu failā.

Secinājums Nr

Linux, lai rakstītu tekstu failā, izmantojiet > un >> novirzīšanas operatori vai tee komandu.

Ja jums ir kādi jautājumi vai atsauksmes, droši atstājiet komentāru.

Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...
Labākie Linux spēļu konsoles emulatori
Šajā rakstā tiks uzskaitīta populārā Linux spēļu konsoles atdarināšanas programmatūra. Emulācija ir programmatūras saderības slānis, kas atdarina spēļ...
Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...