Paano Sumulat sa isang File sa Bash

How Write File Bash



Isa sa mahahalagang gawain na ginagawa namin habang nagtatrabaho sa bash scripting ay ang pagbabasa at pagsulat ng mga file. Sa gabay na ito, magtutuon kami sa kung paano basahin ang mga file sa bash at kung paano i-edit ang mga ito.

Mayroong maraming mga paraan upang basahin at isulat ang isang file sa bash. Ang pinakasimpleng paraan ay ang paggamit ng mga operator> at >>.







  • > Sasamantala ng operator ang mayroon nang data
  • >> Dadagdag ng operator ang data

Ang pangkalahatang format ng paggamit ng mga operator ng pag-redirect ay:



Data> Pangalan ng File
Data >> Pangalan ng File

Unawain natin ang pagsulat sa isang pamamaraan ng file na may isang halimbawa:



Paano magsulat ng isang file gamit ang mga operator ng pag-redirect

Tulad ng tinalakay sa itaas, ang simple at prangkang diskarte ng pagsusulat sa isang file ay gumagamit ng mga operator ng pag-redirect. Halimbawa, kung nais mong baguhin ang teksto ng isang mayroon nang file, pagkatapos ay unang lumikha ng isang text file sa pamamagitan ng pangalan ng testfile.txt at isulat ang anupaman dito:





I-save ang file ng teksto.



I-type ang nabanggit na utos sa terminal:

$ echo Pag-overwrite ng mayroon nang teksto sa file> testfile.txt

Ang labis na pagpipit ay maaaring mapanganib; samakatuwid, mabuting kasanayan upang paganahin ang noclobber. Ang pagtatakda ng noclobber ay hahadlangan ang anumang pag-o-overtake sa anumang paglabas ng file.

$ set –o noclobber
$ echo Pag-overwrite ng mayroon nang teksto sa file> testfile.txt

Ngunit kung nais mong laktawan ang noclobber pagkatapos ay gamitin ang > | operator sa halip > :

$ echo Pag-overwrite ng mayroon nang teksto sa file> | testfile.txt

O maaari mo lamang paganahin ang noclobber:

$ set + o noclobber

Ngunit ang utos na ito ay aalisin ang proteksyon mula sa lahat ng mga file.

Ang output sa itaas ay nagpapahiwatig na ang mayroon nang teksto ay na-o-overtake. Ngayon, gamitin natin ang >> operator:

$ echo Nagdaragdag ng teksto sa umiiral na file ng teksto >> testfile.txt

itinapon ay hindi laging perpektong gamitin dahil hindi mo mai-format ang teksto gamit ito, samakatuwid gumamit ng printf sa lugar ng echo upang mai-format ang teksto tulad ng ipinakita sa sumusunod na utos:

$ printf Welcome n Ito ay isang bagong file ng teksto. > newtestfile.txt

Unawain natin ang konsepto sa isang halimbawa ng bash script. Buksan ang Vim sa pamamagitan ng pag-type ng vim sa terminal. Kung wala kang Vim editor sa iyong aparato, pagkatapos ay i-install ito gamit ang:

$ sudo apt install vim

I-type ang script:

#! / basahan / bash
echo Ipasok ang iyong pangalan
basahin ang pangalan
echo $ name> data_dir.txt
echo Ipasok ang iyong edad
basahin ang edad
echo $ age >> data_dir.txt
data ng pusa_dir.txt

Ang pusa ginagamit ang utos upang likhain at i-edit ang mga file. I-save ang script sa itaas sa Vim sa pamamagitan ng switching mode pagkatapos ng pagpindot sa Esc susi at pagkatapos ay i-type : sa MyScript.sh . Buksan ang terminal at patakbuhin ang code:

Paano magsulat ng isang file gamit ang Heredoc

Kung nais mong magsulat ng maraming linya, kung gayon ang pinakamadaling pamamaraan ay ang paggamit ng Heredoc. Dito ang dokumento, na kilala rin bilang Heredoc, ay isang multi-purpose code block. Ang syntax ng Heredoc ay:

Utos<<[-] Delimiter
.
teksto / utos
.

Delimiter

Ang anumang string ay maaaring gamitin sa lugar ng Delimiter, at - maaari ring magamit upang alisin ang anumang mga puwang ng tab sa file. Unawain natin ito gamit ang isang simpleng halimbawa:

#! / basahan / bash

pusa<< TEXTFILE
Ito ay isang file ng teksto.
Ang file na ito ay nilikha gamit ang heredoc.
TEXT FILE

Ang utos ng script sa itaas na script ay lumilikha ng isang file ng teksto sa pamamagitan ng pangalan ng TEXTFILE, at pagsusulat ng teksto sa file na nilikha lamang. Ngayon ay i-save ang file sa pamamagitan ng pangalan ng myscript.sh . Ilunsad ang terminal at patakbuhin ang script.

Paano magsulat ng isang file gamit ang Tee command

Ang isa pang pamamaraan upang magsulat ng isang file ay gumagamit ng utos ng Tee. Bilang pangalan na nagpapahiwatig ang utos na ito ay tumatagal ng pag-input at nagsusulat sa isang file at ipinapakita ang output nang sabay-sabay. Bilang default, i-o-overtake ng utos ng Tee ang mayroon nang data.

$ echo Ito ang ilang teksto | tee textfile.txt

Upang idagdag ang paggamit –a:

$ echo Ito ay isa pang teksto | tee – isang textfile.txt

Upang sumulat ng maraming linya, gamitin ang:

$ echo Pagdaragdag ng teksto sa maraming mga file | tee textfile1.txt textfile2.txt textfile3.txt

Ang utos sa itaas ay lilikha ng tatlong mga file kung wala ang mga ito at magsulat ng teksto sa bawat isa sa kanila.

Konklusyon

Ang gabay na ito ay nakatuon sa maraming mga diskarte upang sumulat sa isang file sa bash na may mga halimbawa. Sa bash scripting, maraming mga paraan upang magsulat ng isang file, ngunit ang pinakasimpleng isa ay ang paggamit ng mga operator ng pag-redirect>, >>. Upang magsulat ng maraming linya, maaaring magamit ang heredoc, at kung nais mong isulat ang parehong data sa maraming linya, kung gayon ang utos ng tee ay medyo madaling gamitin.