Bash sløyfe gjennom filer i en katalog

Bash Loop Through Files Directory



I Ubuntu, inkludert Bash, har looper gjort det mulig å bruke operasjoner på flere filer. Looping er det mest effektive, ettersom det lar brukeren bruke den samme logikken på elementet gjentatte ganger ved å bruke en liten kodelinje.

For å forstå begrepet looping over filer i katalogen, trenger du tilgang til Ubuntu -applikasjonen og -tjenestene. Når du har noen privilegier, kan du bare operere med filer og kataloger.







Du burde ha installert Bash på Ubuntu -operativsystemet. I noen installasjoner er det installert som standard i oppdateringen av pakker. Hvis den allerede er installert, må du oppgradere versjonen fordi den må være over 4. For å fortsette den nåværende veiledningen, må du beholde versjonen over 4. For å sjekke versjonen av den forhåndsinstallerte Bash i systemet, bruker du kommandoen på Ubuntu -terminalen.



$Bash--versjon



Så du må utføre noen funksjoner på filer og kataloger. Du kan utføre de forklarte kommandoene nedenfor i en hvilken som helst katalog du ønsker. Men for å være presis, er det å foretrekke å opprette en ny katalog slik at alle eiendelene til denne er lett tilgjengelige når du åpner den.





Det aller første trinnet er å lage en katalog. Vi har tatt et eksempel på katalogen abc. Opprett en katalog ved å utføre kommandoen.

$mkdirabc



Etter å ha opprettet katalogen, må du nå utføre alle kommandoene på det. Så etter opprettelsen av katalogen, bytt til den katalogen. Bruk kommandoen nedenfor:

$CDabc

Etter å ha gått til katalogen, lager du nå noen filer ved hjelp av berøringskommandoen.

$ta påfile1.txt

Mange metoder brukes til å lage en fil i Ubuntu. Foruten berøringskommandoen har vi brukt ekkokommandoen her for å lage en fil og legge til innholdet i den samlet i en enkelt kommando:

$kastet utLinux, ubuntu, Postgresql>file7.txt

Denne filen er opprettet i en enkel katalog som for øyeblikket kjører som standard. Så navnet på den nyopprettede katalogen blir ikke lagt til med ledeteksten. Du kan også opprette filer ved å bruke et område og utvidelse i berøringskommandoen.

$ta påfil-{1..8}.tekst

Ved å bruke denne kommandoen i nye filer med .txt -utvidelser vil bli opprettet ved å bruke en enkelt kommando.

Etter det kan du nå gå gjennom katalogen som er nyopprettet. Vis filnavnene. Siden vi må gå gjennom filene i katalogen, trenger vi en løkke. Loops er veldig effektive å bruke da de henter dataene på kortere tid, og krever mindre input. Her vil vi bruke en for loop. Ved å bruke denne sløyfen vil hvert filnavn bli vist på neste linje.

$til fil i *;gjøre kastet ut $ fil;gjort

* brukes for alle filene i denne katalogen. Dette gjør at 'for' -løkken kan fange alle filene. Men for å gjøre utgangen presis, kan du legge til noen termer med stjernetegnet. For eksempel brukes ‘file-*’ for alle filene som starter fra filen. Og *.txt for å hente filene som har .txt -utvidelser. Vi vil bruke disse eksemplene videre i artikkelen.

Denne sløyfen vil fungere slik at den vil hente alle filene fra katalogen og deretter vise alle filene gjennom ekkokommandoen. $ -Tegnet her representerer navnet på filen. Fra resultatet kan du se at hvert filnavn vises.

Etter å ha bekreftet filene som er opprettet ved å vise filnavnene, er det nå på tide å angi verdien i filene fordi filene som er opprettet, er tomme. Dette kan gjøres manuelt ved å åpne hver fil i tekstredigereren og deretter skrive dataene. Det andre alternativet er å legge inn data i hver fil via kommandoen i terminalen. Men det krever tid å legge inn dataene i hver fil gjennom en enkelt kommando for hver fil. Men det kan gjøres enkelt og kollektivt ved å bruke for loop i en enkelt kommando.

$til fil i *;gjøre kastet ut -2 $ fil nLinux Ubuntu> $ fil;gjort

Etter utførelsen av kommandoen har verdien blitt lagt inn i hver fil vi opprettet. Når det brukes med ekko, beholder '-e' -flagget den nye linjen i filen. For å se dataene som er lagt inn, kan du navigere til 'abc' -katalogen. Åpne nå hvilken som helst tekstfil. Filen er ikke tom lenger.

‘$ -Filen vil vise filnavnet først i filen, og dataene du skrev inn vil bli forhåndsviset på den andre linjen fordi n brukes til å flytte ordene som brukes etter dette til en annen linje. Du kan også kontrollere dataene som er lagt inn via kommandoen.

$til fil i *;gjøre katt $ fil;gjort

Cat -kommando brukes til å hente dataene som finnes i alle filene i katalogen.

Både prosedyren for å legge inn data og hente dem kan gjøres gjennom en enkelt kommando.

$til fil i *;gjøre kastet ut-Og$ fil nbash programmering> $ fil;katt $ fil;gjort

Det første trinnet er å skrive dataene i filen og deretter vise dem. Når du utfører kommandoen, blir utgangen som følger:

Hver fil inneholder samme verdi. Dette er på grunn av 'for' -løkken.

Vi kjenner løkken for å hente data og sette inn verdier, etc., men løkken brukes også til å lage sikkerhetskopier. Disse filene har utvidelsen .bak på slutten. Utfør nå sikkerhetskopikommandoen i skallet for å se sikkerhetskopien av hver fil.

$til fil i *;gjøre cp $ fil $ fil.bak;gjort;

CP -søkeordet brukes til å sikkerhetskopiere alle filene. Nå for å se filene som denne kommandoen brukes på. Vi bruker kommandoen som:

$ls- den

Nå er det synlig fra utgangen at detaljene i filene vises. Dato, filnavn, brukernavn og klokkeslett da det ble slettet. Du har også en nøyaktig kopi av hver fil.

Hvis vi bare vil ha jpeg -filene. Vi vil bruke dette i kommandoen

$til fil i *.jpeg;gjøre kastet ut $ fil;gjort

Dette vil bare bringe navnene på bildene.

Et enkelt funn kan også gjøre den samme funksjonen. Den vil hente alle filene med en utvidelse av .sh.

$finne. - Navn*sh

Vi vil bruke søkeordet finne i for en loop.

$til fil i *;gjørefinne. Fil.*;gjort

Dette vil bringe alle filene til den nåværende katalogen. Disse har utvidelser av .bak, .jpeg, .txt. etc.

Hvis du vil se navnet på alle katalogfilene og dataene i dem, gjøres dette også av 'for' -løkken.

$til fil i *;gjøre fil $ fil;gjort

Konklusjon

Å gå gjennom filene i en hvilken som helst katalog er ikke vanskelig lenger, som vi vet, ved å bruke sløyfer i Bash og utføre på Linux -operativsystemene. Denne opplæringen er en komplett guide for å lage, få tilgang til og utføre operasjoner i katalogen ved hjelp av en 'for' -sløyfe.