10 praktilist näidet Metsamärkide kasutamine failinimede sobitamiseks Linuxis


Metamärgid (neid nimetatakse ka metamärkideks) on sümbolid või erimärgid, mis tähistavad teisi märke. Võite neid kasutada mis tahes käskudega, näiteks käsuga ls või rm, et loetletud kriteeriumitele vastavaid faile vastuvõtlikult loetleda või eemaldada.

Loe ka: 10 kasulikku praktilist näidet operaatorite aheldamiseks Linuxis

Kest tõlgendab neid metamärke ja tulemused tagastatakse teie käsku. Linuxis on kolm peamist metamärki:

  • Tärn (*) - sobib mis tahes tähemärgi ühe või mitme esinemisega, sh tähemärgita.
  • Küsimärk (?) - tähistab või vastab ükskõik millise märgi ühele esinemisele.
  • Sulgudes olevad märgid ([]) - sobib nurksulgudesse lisatud tähemärkide esinemisega. Võimalik on kasutada erinevat tüüpi märke (tähtnumbrilisi märke): numbreid, tähti, muid erimärke jne.

Peate hoolikalt valima, millist metamärki õigete failinimede sobitamiseks kasutada: samuti on võimalik kõik need ühendada ühte toimingusse, nagu on selgitatud allpool toodud näidetes.

Kuidas sobitada failinimesid, kasutades Linuxis metamärke

Selle artikli eesmärgil kasutame iga näite näitamiseks järgmisi faile.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. See käsk sobitab kõik failid nimedega, mis algavad l (mis on eesliide) ja lõpevad ühe või mitme suvalise tähemärgi esinemisega.

$ ls -l l*	

2. See näide näitab * teise kasutamist kõigi users-0 eesliitega failinimede kopeerimiseks, mis lõpeb mis tahes tähemärgi ühe või mitme esinemisega.

$ mkdir -p users-info
$ ls users-0*
$ mv -v users-0* users-info/	# Option -v flag enables verbose output

3. Järgmine käsk sobib kõigi failidega, mille nimed algavad l , millele järgneb ükskõik milline märk ja lõpeb tähega st.sh (mis on sufiks).

$ ls l?st.sh	

4. Allolev käsk sobitab kõik failid nimedega, mis algavad tähega l , millele järgneb mõni nurksulgus olev täht, kuid lõpeb tähega st.sh .

$ ls l[abdcio]st.sh 

Kuidas kombineerida metamärke Linuxi failinimedega vastavusse viimiseks

Järgmistes näidetes kirjeldatud keerukate failinimedele vastavate kriteeriumide loomiseks võite metamärke kombineerida.

5. See käsk sobib kõigi failinimedega, mis on varustatud kahe tähemärgiga, millele järgneb st , kuid mis lõpeb mis tahes märgi ühe või mitme esinemisega.

$ ls
$ ls ??st*

6. See näide sobib failinimedega, mis algavad mis tahes neist tähtedest [clst] ja lõpevad ükskõik millise märgi ühe või mitme esinemisega.

$ ls
$ ls [clst]*

7. Selles näites toovad ainult need failinimed, mis algavad mis tahes neist tähtedest [clst] , millele järgneb üks neist [io] ja seejärel ükskõik milline märk, millele järgneb t ja lõpuks loetletakse üks või mitu tähemärki.

$ ls
$ ls [clst][io]?t*

8. Siin eemaldatakse failinimed, mille ees on ees üks või mitu tähemärgi esinemist, millele järgnevad tähed tar ja mis lõpevad mis tahes tähemärgi ühe või mitme esinemisega.

$ ls
$ rm *tar*
$ ls

Kuidas sobitada Linuxis märke

9. Nüüd vaatame, kuidas määrata märkide komplekt. Mõelge allpool toodud failinimedele, mis sisaldavad süsteemi kasutajate teavet.

$ ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

See käsk sobib kõigi failidega, mille nimi algab tähega users-i , millele järgneb number, väike täht või number, seejärel number ja lõpeb ühe või mitme suvalise tähemärgiga.

$ ls users-[0-9][a-z0-9][0-9]*

Järgmine käsk vastab failinimedele, mis algavad users-i , millele järgneb number, väike või suur täht või number, seejärel number ja lõpeb ühe või mitme suvalise tähemärgiga.

$ ls users-[0-9][a-zA-Z0-9][0-9]*

See järgmine käsk sobib kõigi failinimedega, mis algavad tähega users-i , millele järgneb number, väike või suur täht või number, seejärel väike või suur täht ja lõpeb ühe või mitme tähega suvaline tegelane.

$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Kuidas Linuxis märkide kogumit arutada

10. Samuti saate märkide komplekti tühistada, kasutades sümbolit ! . Järgmine käsk loetleb kõik failinimed, mis algavad users-i , millele järgneb number, kõik kehtivad failinimed, välja arvatud number, seejärel väike või suur täht ja lõpeb ükskõik millise üksuse või mitme esinemisega iseloomu.

$ ls users-[0-9][!0-9][a-zA-Z]*

Praeguseks kõik! Kui olete ülaltoodud näiteid proovinud, peaksite nüüd Linuxi failinimedega sobitamiseks hästi mõistma metamärke.

Samuti võiksite lugeda järgmisi artikleid, mis näitavad Linuxis metamärkide kasutamise näiteid:

  1. Kuidas tõrvafaile eraldada Linuxi konkreetsesse või erinevasse kataloogi
  2. 3 viisi kõigi kataloogi failide kustutamiseks, välja arvatud üks või mõni laiendiga fail
  3. 10 kasulikku nõuannet tõhusate Bash-skriptide kirjutamiseks Linuxis
  4. Kuidas failides teksti või stringe filtreerida Awk ja regulaaravaldisi

Kui teil on midagi jagada või teil on küsimusi, kasutage allolevat kommentaarivormi.