Bash Katrai faila rindai

Bash Each Line File



For loop in Bash var izmantot ar dažādām variācijām vairāku uzdevumu veikšanai. Viens no šādiem variantiem ir katrai faila rindai, kas ir atbildīga par visu faila rindu nolasīšanu. Šajā rakstā mēs runāsim par metodēm, kā izmantot katru Bash faila rindiņu.

Piezīme. Tālāk parādītās metodes ir parādītas Ubuntu 20.04. Tomēr tie labi darbosies arī ar jebkuru citu Linux izplatīšanu.







Lietošanas metodes katrai Bash faila rindai:

Šajās metodēs mēs parādīsim piemēru, kurā jūs varat nolasīt katru faila rindu un pēc tam to parādīt terminālī vai pat saglabāt šīs rindas citā failā. Apskatīsim abas šīs metodes.



1. metode: lasīšanas rindu parādīšanai terminālī:

Lai parādītu faila rindas terminālī, izmantojot katrai faila rindai, jums jāveic šādas darbības:



1. solis: fiktīva teksta faila izveide:

Pirmkārt, demonstrācijas labad jums ir jāizveido teksta fails ar dažiem nejaušiem datiem. Lai gan šo teksta failu var izveidot jebkurā vietā, tomēr ir ļoti ieteicams to izveidot mapē Sākums. Lai to izdarītu, noklikšķiniet uz failu pārvaldnieka ikonas, kas iezīmēta attēlā:





  • Fiktīva teksta faila izveide

    Tagad ar peles labo pogu noklikšķiniet jebkurā mapē Sākums un parādītajā izvēlnē atlasiet opciju Jauns dokuments. Pēc tam atlasiet opciju Iztukšot dokumentu. Kad mapē Mājas ir izveidots tukšs dokuments, norādiet tam izvēlēto nosaukumu, kam seko paplašinājums .txt. Šajā piemērā mēs to esam nosaukuši kā ForEachLine.txt.

  • Fiktīva teksta faila izveide2
    Veiciet dubultklikšķi uz šī teksta faila, lai to atvērtu, un pēc tam ierakstiet tajā jebkuru izlases tekstu, kā parādīts nākamajā attēlā. Pēc tam saglabājiet šo failu un aizveriet to.



  • Fiktīva teksta faila izveide 3

    2. solis: Bash skripta izveide:

    Tagad izveidojiet Bash failu tādā pašā veidā, kā esat izveidojis teksta failu mapē Sākums, izņemot to, ka šoreiz jums ir jānorāda tā nosaukums, kam seko paplašinājums .sh, nevis paplašinājums .txt. Mēs esam nosaukuši savu Bash failu kā ForEachLine.sh, bet jūs varat tam piešķirt jebkuru nosaukumu.
    Bash skripta izveide

    Atveriet šo failu, veicot dubultklikšķi uz tā, un pēc tam jaunizveidotajā Bash failā ierakstiet zemāk redzamajā attēlā redzamo skriptu. Šeit pirmā rinda norāda, ka šis skripts ir Bash skripts. Mēs vienkārši esam izveidojuši mainīgo ar nosaukumu Fails un piešķīruši tam sava teksta faila nosaukumu kā vērtību, ti, ForEachLine.txt. Tad mēs esam izveidojuši mainīgo ar nosaukumu Lines un pielīdzinājuši to $ (cat $ File). Šeit komanda kaķis nolasa mūsu teksta faila saturu un, ja pirms tās ir simbols $, tad šīs komandas lasītais saturs tiks saglabāts mainīgajā rindā. Tādā veidā visas faila rindas ar nosaukumu ForEachLine.txt tiks saglabātas mainīgajā Lines. Tad mēs esam pielietojuši cilpu For, kurai ir iteratora līnija. Šis iterators darbojas ar mainīgo Lines, kuru esam izveidojuši iepriekš, un tas atkārtos visas rindas pa vienam. Tad blokā do-done mēs vienkārši esam parādījuši visas šīs rindas terminālī, izmantojot komandu echo.
    Bash Script izveide 2

    3. solis: Bash skripta palaišana:

    Tagad palaidiet termināli Ubuntu 20.04 un pēc tam palaidiet tajā šādu komandu, lai izpildītu iepriekš izveidoto Bash skriptu:
    bash ForEachLine.sh
    Bash skripta palaišana

    Kad šī komanda liks izpildīt bash skriptu, tad terminālī varēsit redzēt visas teksta faila rindiņas, kā parādīts šajā attēlā:
    Bash skripta palaišana

    2. metode: visu lasīto rindu saglabāšanai citā failā:

    Šajā metodē mēs esam nedaudz mainījuši iepriekš aprakstītajā metodē izveidoto Bash skriptu, lai visas lasītās rindas tiktu saglabātas jaunā teksta failā, nevis parādītas terminālī. Lai to izdarītu, veiciet tālāk norādītās darbības.

    1. solis: iepriekš izveidotā Bash skripta modificēšana un palaišana:

    Atveriet Bash skriptu, ko esat izveidojis ar iepriekš minēto metodi, un mainiet to, kā parādīts nākamajā attēlā. Mēs vienkārši pievienojām simbolu >>, kam sekoja jauns faila nosaukums pēc komandas echo blokā do-done. Šī modifikācija visas lasītās rindas saglabās jaunā teksta failā, nevis parādīs tās terminālī. Tagad vēlreiz palaidiet Bash skriptu, izmantojot termināli, ar komandu bash, kam seko Bash faila nosaukums. Šoreiz, kad tiks palaists Bash skripts, tas izveidos jaunu teksta failu, kura nosaukums šajā gadījumā ir NewFile.txt.
    Iepriekš izveidotā Bash skripta modificēšana un tā palaišana

    2. darbība. Piekļuve jaunizveidotajam teksta failam:

    Lai pārbaudītu, vai visas nolasītās rindas ir saglabātas jaunajā teksta failā, varat vienkārši apskatīt šī faila saturu, terminālī palaižot šādu komandu:
    kaķis NewFile.txt
    Piekļuve jaunizveidotajam teksta failam
    Zemāk redzamajā attēlā redzamā izvade nodrošinās, ka visas nolasītās rindas ir nokopētas jaunajā teksta failā.
    Piekļuve jaunizveidotajam teksta failam2

    Secinājums:

    Tādā veidā jūs varat izmantot katru faila rindu, lai izlasītu visas faila rindas un pēc tam manipulētu ar šīm rindām. Šajā rakstā mēs tikko runājām par diviem pamata scenārijiem, tomēr jūs pat varat izmantot šo cilpu sarežģītākām problēmām.