Bash Globbing -opetusohjelma

Bash Globbing Tutorial



Bash ei tue alkuperäisiä säännöllisiä lausekkeita, kuten jotkut muut vakiokäyttökielet. Bash -kuoriominaisuutta, jota käytetään tietyntyyppisten kuvioiden sovittamiseen tai laajentamiseen, kutsutaan globaaliksi. Globbingia käytetään pääasiassa tiedostonimien vastaamiseen tai tiedoston sisällön etsimiseen. Globbing luo kaavan luomalla yleismerkkejä. Alla on kuvattu yleisimmät yleismerkit, joita käytetään globbing -kuvioiden luomiseen.

’?’ käytetään vastaamaan mitä tahansa yksittäistä merkkiä. Voit käyttää ’?’ useita kertoja useiden merkkien yhdistämiseksi.







Esimerkki 1:



Oletetaan, että haluat etsiä niitä tekstitiedostoja, joiden nimet ovat 4 merkkiä pitkiä ja laajennus on .txt . Voit käyttää kuvioita käyttämällä ' ? ’Neljä kertaa tämän tehtävän suorittamiseksi.



Selvitä luettelo kaikista nykyisen hakemiston tiedostoista ja kansioista.





$ls-he

Suorita seuraava komento etsi tiedostoja, joiden nimet ovat neljä merkkiä pitkiä ja tuntemattomia.

$ ls -l ????. txt



Esimerkki 2:

Oletetaan, että haluat etsiä asiakirjatiedostoja, joiden nimet ovat 8 merkkiä, ensimmäiset 4 merkkiä f, o, o ja t ja laajennus on doc . Hae tiedostoja suorittamalla seuraava komento, jossa on kuviointi.

$ls -hejalka ????. doc

Esimerkki 3:

Oletetaan, että tiedät tiedostonimen 'parhaat' ja laajennus on 3 merkkiä pitkä, mutta en tiedä laajennusta. Suorita seuraava komento käyttämällä ’? 'Etsiäksesi kaikkia tiedostoja, joiden nimi on' testi 'ja joiden pituus on kolme merkkiä.

$ls -heparhaat.???

Tähti - (*)

'*' käytetään vastaamaan nollaa tai enemmän merkkejä. Jos sinulla on vähemmän tietoa minkä tahansa tiedoston tai tietojen etsimiseen, voit käyttää sitä '*' rypytyskuviossa.

Esimerkki -1:

Oletetaan, että haluat tehdä hakuja kaikista kohteen tiedostoista ‘pl’ laajennus. Suorita seuraava komento käyttämällä '*' tekemään sen tehtävän.

$ls -he *.pl

Esimerkki 2:

Oletetaan, että tiedät vain tiedostonimen aloitusmerkin, joka on '' . Suorita seuraava komento käyttämällä*-painiketta etsiäksesi kaikki nykyisen hakemiston tiedostot, joiden nimet alkavat '' .

$ls -hekohteeseen*.*

Esimerkki 3:

Voit käyttää '*' bash -skriptissä eri tarkoituksiin etsimättä tiedostoja. Luo bash -tiedosto nimeltä 'Check.sh' seuraavan käsikirjoituksen kanssa. Tässä, kun käyttäjä kirjoittaa ' y 'tai' Y 'tai' kyllä ​​'tai' Kyllä ' sitten 'Vahvistettu' tulostaa ja milloin tyyppi kirjoittaa 'N' tai 'N' tai 'ei' tai 'ei' sitten 'Ei vahvistettu' tulostaa.

#!/bin/bash
heitti pois 'Haluatko vahvistaa?'
lukeavastaus
tapaus $ vastaus sisään
[Yy]* ) heitti pois 'vahvistettu.';;
[Nro]* ) heitti pois 'Ei vahvistettu.';;
*) heitti pois 'Yritä uudelleen.';;
esac

Suorita komentosarja.

$lyödächeck.sh

Hakasulkeet - ([])

'[]' käytetään vastaamaan alueen merkkiä. Jotkut useimmin käytetyistä alueilmoituksista on mainittu alla.

Kaikki isot aakkoset määritellään alueella, [: ylä:] tai [A-Z].

Kaikki pienet aakkoset määritellään alueella, [: pienempi:] tai [a-z].

Alue määrittelee kaikki numeeriset numerot, [: numero:] tai [0-9].

Kaikki isot ja pienet aakkoset määritellään alueella, [: alfa:] tai [a-zA-z].

Kaikki isot kirjaimet, pienet aakkoset ja numerot määritellään alueella, [: alnum:] tai [a-zA-Z0-9]

Esimerkki -1:

Suorita seuraava komento etsiäksesi kaikki tiedostot ja kansiot, joiden nimi sisältää s tai mitä tai r tai s .

$ls -he [p-s]*

Esimerkki 2:

Suorita seuraava komento etsiäksesi kaikki tiedostot ja kansiot, joiden nimi alkaa millä tahansa numerolla 1–5.

$ls -he [1-5]*

Häneltä puuttuu - (^)

Voit käyttää '^' hakasulkeella, joka määrittelee tarkemmin kuvion. '^' voidaan käyttää hakasulkeen sisällä tai ulkopuolella. ”^” -Merkkiä käytetään hakasulkeen ulkopuolella haettaessa tiedoston sisältöä, joka alkaa tietyllä merkkialueella. ”^” -Merkkiä käytetään hakasulkeessa tiedoston koko sisällön näyttämiseen korostamalla rivit, jotka alkavat tietyllä merkkialueella. Voit hakea tiettyä sisältöä tiedostosta käyttämällä erityyppisiä rypytysmalleja. 'ote' komentoa käytetään sisällön etsimiseen bashissa. Oletetaan, että sinulla on tekstitiedosto nimeltä 'List.txt' seuraavan sisällön kanssa. Testaa seuraavat esimerkit kyseiselle tiedostolle.

Omena
4000
Banaani
700
Oranssi
850
Päärynä
9000
jakkipuun

Esimerkki - 1:

Suorita seuraava komento etsiäksesi nämä rivit list.txt tiedosto, joka alkaa P tai Q tai R .

$ grep '^[P-R]' list.txt

Esimerkki - 2:

Korosta nämä rivit suorittamalla seuraava komento list.txt tiedosto, joka alkaa A tai B tai C. .

$ grep '[^A-C]' list.txt

Huutomerkki - (!)

Voit käyttää '!' aluekuvion sisällä. Se toimii samalla tavalla kuin ”^” -symbolin käyttö vaihtelukuvion ulkopuolella. Muutamia esimerkkejä käytöstä '!' merkki on annettu alla.

Esimerkki - 1:

Suorita seuraava komento näyttääksesi nämä rivit list.txt tiedosto, joka alkaa 'P' tai Q tai R .

$ grep [! P-R] list.txt

Esimerkki - 2:

Suorita seuraava komento näyttääksesi nämä rivit list.txt tiedosto, joka alkaa millä tahansa numerolla 4-8 .

$ grep [! 4-8] list.txt

Dollarin merkki - ($)

'$' käytetään lopetusmerkin määrittämiseen. Jos haluat etsiä tietoja viimeisen merkin perusteella, voit käyttää '$' rypytyskuviossa.

Esimerkki - 1:

Suorita seuraava komento etsiäksesi nämä rivit list.txt tiedosto, joka päättyy '' .

$ grep a $ list.txt

Esimerkki - 2:

Suorita seuraava komento etsiäksesi nämä rivit list.txt tiedosto, joka päättyy numeroon viisikymmentä .

$ grep 50 $ list.txt

Kihara - {(})

'{}' voidaan käyttää vastaamaan tiedostonimiä useamman kuin yhden kuvion kanssa. Jokainen kuvio on erotettu ',' -merkillä, jossa ei ole tilaa. Alla on muutamia esimerkkejä.

Esimerkki - 1:

Suorita seuraava komento etsiäksesi tiedostoja, joiden nimet ovat 5 merkkiä pitkiä ja laajennus on 'Sh' tai tiedostojen kaksi viimeistä merkkiä ovat 'St' ja laajennus on 'Txt' .

$ ls -l {?????. sh,*st.txt}

Esimerkki - 2:

Suorita seuraava komento poistaaksesi kaikki tiedostot, joiden laajennukset ovat 'Doc' tai 'docx' .

$rm {*.doc,*.docx}

Putki - (|)

'|' -Merkkiä käytetään myös useamman kuin yhden ehdon käyttämiseen lohkokaaviossa. Jokainen kuvio on erotettu komennolla '|' -merkillä.

Esimerkki - 1:

Suorita seuraava komento etsiäksesi tiedostonimiä, jotka alkavat merkillä 'a' ja joiden laajennus on 'bash' tai 'sh'.

$lskohteeseen*+(.lyödä|.sh)

Esimerkki - 2:

Luo bash -tiedosto nimeltä 'Menu.bash' ja lisää seuraava skripti. Jos käyttäjä tyyppi 1 tai S. sitten se tulostaa Haetaan tekstiä . Jos käyttäjä tyyppi 2 tai R sitten se tulostaa Tekstin korvaaminen . Jos käyttäjä tyyppi 3 tai D sitten se tulostaa Tekstin poistaminen . Se tulostaa Yritä uudelleen mille tahansa muulle tulolle.

#!/bin/bash
heitti pois 'Valitse mikä tahansa vaihtoehto valikosta:'
lukeavastaus
tapaus $ vastaus sisään
1 |S) heitti pois 'Haetaan tekstiä';;
2 |R) heitti pois 'Tekstin korvaaminen';;
3 |D) heitti pois 'Tekstin poistaminen';;
*) heitti pois 'Yritä uudelleen.';;
esac

Suorita komentosarja.

$lyödämenu. bash

PÄÄTELMÄ

Tässä opetusohjelmassa selitetään joitain yleisimmin käytettyjä kuviomalleja käyttämällä yksinkertaisia ​​esimerkkejä. Toivon, että yllä olevien esimerkkien harjoittelun jälkeen globaation käsite on sinulle selvä ja voit soveltaa sitä menestyksekkäästi bash -komentoihin ja komentosarjoihin.

Lisätietoja tästä videosta: