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:
- Kuidas tõrvafaile eraldada Linuxi konkreetsesse või erinevasse kataloogi
- 3 viisi kõigi kataloogi failide kustutamiseks, välja arvatud üks või mõni laiendiga fail
- 10 kasulikku nõuannet tõhusate Bash-skriptide kirjutamiseks Linuxis
- Kuidas failides teksti või stringe filtreerida Awk ja regulaaravaldisi
Kui teil on midagi jagada või teil on küsimusi, kasutage allolevat kommentaarivormi.