Bash loop sa pamamagitan ng mga file sa isang direktoryo

Bash Loop Through Files Directory



Sa Ubuntu, kasama ang Bash, ginawang posible ng mga loop na mag-apply ng mga pagpapatakbo sa maraming mga file. Ang pag-loop ay ang pinaka-mabisang bagay dahil pinapayagan nito ang gumagamit na ilapat ang parehong lohika sa item nang paulit-ulit sa pamamagitan ng paggamit ng isang maliit na code-line.

Upang maunawaan ang konsepto ng pag-loop sa mga file sa direktoryo, kailangan mo ng pag-access sa Ubuntu application at mga serbisyo. Kapag mayroon kang ilang mga pribilehiyo, maaari ka lamang gumana sa mga file at direktoryo.







Dapat ay na-install mo ang Bash sa operating system ng Ubuntu. Sa ilang mga pag-install, naka-install ito bilang default sa pag-update ng mga pakete. Kung naka-install na ito, kailangan mong i-upgrade ang bersyon dahil dapat itong nasa itaas 4. Upang ipagpatuloy ang kasalukuyang gabay, kailangan mong panatilihin ang bersyon sa itaas 4. Upang suriin ang bersyon ng paunang naka-install na Bash sa iyong system, gamitin ang utos sa terminal ng Ubuntu.



$Bash--versi



Kaya kailangan mong magsagawa ng ilang mga pagpapaandar sa mga file at direktoryo. Maaari mong maisagawa ang mga ipinaliwanag na utos sa ibaba sa anumang direktoryo na iyong pinili. Ngunit upang maging tumpak, mas mabuti na lumikha ng isang bagong direktoryo upang ang lahat ng mga gamit ng ito nang direkta ay madaling ma-access kapag binuksan mo ito.





Ang pinakaunang hakbang ay upang lumikha ng isang direktoryo. Kumuha kami ng isang sample na pangalan ng abc ng direktoryo. Lumikha ng isang direktoryo sa pamamagitan ng pagpapatupad ng utos.

$mkdirabc



Matapos likhain ang direktoryo, ngayon kailangan mong gawin ang lahat ng mga utos doon. Kaya pagkatapos ng paglikha ng direktoryo, lumipat sa direktoryong iyon. Gamitin ang nabanggit na utos:

$CDabc

Matapos ang pagpunta sa direktoryo, ngayon lumikha ng ilang mga file sa pamamagitan ng paggamit ng touch command.

$hawakanfile1.txt

Maraming pamamaraan ang ginagamit upang lumikha ng isang file sa Ubuntu. Bukod sa touch command, ginamit namin ang echo command dito upang lumikha ng isang file at idagdag ang nilalaman dito nang sama-sama sa isang solong utos:

$itinaponLinux, ubuntu, Postgresql>file7.txt

Ang file na ito ay nilikha sa isang simpleng direktoryo na kasalukuyang tumatakbo bilang default. Kaya't ang pangalan ng bagong nilikha na direktoryo ay hindi naidagdag na may prompt ng utos. Maaari ka ring lumikha ng mga file sa pamamagitan ng paggamit ng isang saklaw at pagpapalawak sa ugnay na utos.

$hawakanfile-{1..8}.txt

Sa pamamagitan ng paggamit ng utos na ito sa mga bagong file ng .txt extension ay malilikha sa pamamagitan ng paggamit ng isang solong utos.

Pagkatapos nito, maaari ka nang mag-loop sa direktoryo na bagong nilikha. Ipakita ang mga pangalan ng file. Tulad ng pag-loop namin sa mga file na naroroon sa direktoryo, kailangan namin ng isang loop. Ang mga loop ay napaka epektibo upang magamit habang kukunin nila ang data sa mas kaunting oras, na nangangailangan ng mas kaunting pag-input. Dito gagamit kami ng para sa loop. Sa pamamagitan ng paggamit ng loop na ito, ang bawat pangalan ng file ay ipapakita sa susunod na linya.

$para sa file sa *;gawin itinapon $ file;tapos na

* ay ginagamit para sa lahat ng mga file na naroroon sa direktoryong ito. Pinapayagan nito ang loop na 'para' na kunin ang lahat ng mga file. Ngunit upang tumpak ang output, maaari kang magdagdag ng ilang mga term na may tanda ng asterisk. Halimbawa, ang 'file- *' ay ginagamit para sa lahat ng mga file na nagsisimula mula sa file. At * .txt upang makuha ang mga file na may mga extension na .txt. Gagamitin namin ang mga halimbawang ito sa karagdagang artikulo.

Gagana ang loop na ito upang makuha ang lahat ng mga file mula sa direktoryo at pagkatapos ay ipakita ang lahat ng mga file sa pamamagitan ng utos ng echo. Ang $ sign dito ay kumakatawan sa pangalan ng file. Mula sa resulta, maaari mong makita na ang bawat pangalan ng file ay ipinapakita.

Matapos mapatunayan ang mga file na nilikha sa pamamagitan ng pagpapakita ng mga pangalan ng mga file, oras na upang ipasok ang halaga sa mga file dahil ang mga file na nilikha ay walang laman. Maaari itong magawa nang manu-mano sa pamamagitan ng pagbubukas ng bawat file sa text editor at pagkatapos ay pagsulat ng data. Ang pangalawang pagpipilian ay upang ipasok ang data sa bawat file sa pamamagitan ng utos sa terminal. Ngunit nangangailangan ito ng oras upang ipasok ang data sa bawat file sa pamamagitan ng solong utos para sa bawat file. Ngunit madali itong magagawa at sama-sama sa pamamagitan ng paggamit ng loop sa isang solong utos.

$para sa file sa *;gawin itinapon -2 $ file nLinux Ubuntu> $ file;tapos na

Matapos ang pagpapatupad ng utos, ang halaga ay naipasok sa bawat file na nilikha namin. Kapag ginamit sa echo, mapapanatili ng watawat na ‘-e’ ang bagong linya sa file. Upang makita ang ipinasok na data, maaari kang mag-navigate sa direktoryo ng 'abc'. Ngayon buksan ang anumang file ng teksto. Ang file ay hindi na walang laman.

Ipapakita muna ng '$ file ang pangalan ng file sa file, at ang data na iyong ipinasok ay ma-preview sa pangalawang linya dahil n ay ginagamit upang ilipat ang mga salitang ginamit pagkatapos nito sa ibang linya. Maaari mo ring suriin ang data na ipinasok sa pamamagitan ng utos.

$para sa file sa *;gawin pusa $ file;tapos na

Ginagamit ang utos ng pusa upang makuha ang data na naroroon sa lahat ng mga file ng direktoryo.

Ang parehong mga pamamaraan ng pagpasok ng data at pagkuha ng ito ay maaaring gawin sa pamamagitan ng isang solong utos.

$para sa file sa *;gawin itinapon-At$ file nbash program> $ file;pusa $ file;tapos na

Ang unang hakbang ay upang isulat ang data sa file at pagkatapos ay ipakita ito. Kapag naisagawa mo ang utos, ang output ay magiging tulad ng sumusunod:

Ang bawat file ay naglalaman ng parehong halaga. Dahil ito sa loop na ‘for’.

Alam namin ang loop para sa pagkuha ng data at pagpasok ng mga halaga, atbp, ngunit ang loop ay ginagamit din upang lumikha ng mga backup. Ang mga file na ito ay may extension .bak sa dulo. Ipatupad ngayon ang backup na utos sa shell upang makita ang backup ng bawat file.

$para sa file sa *;gawin cp $ file $ file. sa likuran;tapos na;

Ginagamit ang keyword ng cp upang mai-back up ang lahat ng mga file. Ngayon upang makita ang mga file kung saan inilapat ang utos na ito. Ginagamit namin ang utos bilang:

$ls- ang

Ngayon nakikita ito mula sa output na ipinakita ang detalye ng mga file. Petsa, pangalan ng file, pangalan ng gumagamit, at oras din kung saan ito tinanggal. Gayundin, mayroon kang isang tumpak na kopya ng bawat file.

Kung nais lamang namin ang mga jpeg file. Gagamitin namin ito sa utos

$para sa file sa *.jpeg;gawin itinapon $ file;tapos na

Dadalhin lamang nito ang mga pangalan ng mga imahe.

Ang isang simpleng paghahanap ay maaari ring gawin ang parehong pag-andar. Susunduin nito ang lahat ng mga file na may isang extension ng .sh.

$hanapin - pangalan*sh

Gagamitin namin ang keyword na makahanap sa para sa isang loop.

$para sa file sa *;gawinhanapin File*;tapos na

Dadalhin nito ang lahat ng mga file sa kasalukuyang direktoryo. Ang mga ito ay may mga extension ng .bak, .jpeg, .txt. atbp.

Ngayon, kung nais mong makita ang pangalan ng lahat ng mga file ng direktoryo at ang data sa loob ng mga ito, ginagawa din ito ng loop na 'para'.

$para sa file sa *;gawin file $ file;tapos na

Konklusyon

Ang pag-loop sa mga file sa anumang direktoryo ay hindi na matigas, tulad ng alam natin, gamit ang mga loop sa Bash at pagganap sa mga operating system ng Linux. Ang tutorial na ito ay isang kumpletong gabay sa paglikha, pag-access, at pagsasagawa ng mga pagpapatakbo sa direktoryo gamit ang isang 'para' na loop.