10 käytännön esimerkkiä jokerimerkkien käyttämisestä tiedostojen nimien sovittamiseen Linuxissa


Jokerimerkit (kutsutaan myös metamerkkeiksi) ovat symboleja tai erikoismerkkejä, jotka edustavat muita merkkejä. Voit käyttää niitä minkä tahansa komennon, kuten ls-komennon tai rm-komennon kanssa, jotta voit luetella tai poistaa tiettyjä ehtoja vastaavat tiedostot vastaanottavalla tavalla.

Lue myös: 10 hyödyllistä käytännön esimerkkiä ketjuoperaattoreista Linuxissa

Kuori tulkitsee nämä jokerimerkit ja tulokset palautetaan suorittamaasi komentoon. Linuxissa on kolme päämerkkiä:

  • Tähti (*) - vastaa yhtä tai useampaa minkä tahansa merkin esiintymää, ei merkkiä.
  • Kysymysmerkki (?) - edustaa minkä tahansa merkin yksittäistä esiintymää tai vastaa sitä.
  • Suluissa olevat merkit ([]) - vastaa hakasulkeissa olevien merkkien esiintymiä. On mahdollista käyttää erityyppisiä merkkejä (aakkosnumeerisia merkkejä): numeroita, kirjaimia, muita erikoismerkkejä jne.

Sinun on valittava huolellisesti, mitä jokerimerkkiä käytetään vastaamaan oikeita tiedostonimiä: on myös mahdollista yhdistää ne kaikki yhteen toimintaan alla olevien esimerkkien mukaisesti.

Kuinka sovittaa tiedostonimet käyttämällä jokerimerkkejä Linuxissa

Tässä artikkelissa käytämme seuraavia tiedostoja kunkin esimerkin esittelemiseen.

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

1. Tämä komento vastaa kaikkia tiedostoja nimillä, jotka alkavat l (joka on etuliite) ja päättyy yhdellä tai useammalla minkä tahansa merkin esiintymällä.

$ ls -l l*	

2. Tämä esimerkki osoittaa toisen * -käytön kopioimaan kaikki users-0 -etuliitteiset tiedostonimet ja päättyen yhdellä tai useammalla minkä tahansa merkin esiintymällä.

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

3. Seuraava komento vastaa kaikkia tiedostoja, joiden nimet alkavat l , minkä jälkeen seuraa yksittäisiä merkkejä ja päättyy st.sh (joka on loppuliite).

$ ls l?st.sh	

4. Alla oleva komento vastaa kaikkia tiedostoja, joiden nimi alkaa l ja jota seuraa jokin hakasulkeessa olevista merkeistä, mutta päättyy st.sh .

$ ls l[abdcio]st.sh 

Kuinka yhdistää jokerit vastaamaan tiedostonimiä Linuxissa

Voit yhdistää jokerimerkkejä muodostamaan monimutkaisen tiedostonimen vastaavuuskriteerit seuraavissa esimerkeissä kuvatulla tavalla.

5. Tämä komento täsmää kaikkiin tiedostonimiin, jotka on lisätty mihin tahansa kahteen merkkiin, joita seuraa st , mutta päättyen yhden tai useamman minkä tahansa merkin esiintymiseen.

$ ls
$ ls ??st*

6. Tämä esimerkki vastaa tiedostonimiä, jotka alkavat millä tahansa näistä merkeistä [clst] ja päättyvät yhden tai useamman minkä tahansa merkin esiintymiseen.

$ ls
$ ls [clst]*

7. Näissä esimerkeissä vain tiedostonimet, jotka alkavat millä tahansa näistä merkeistä [clst] , jota seuraa jokin näistä [io] ja sitten mikä tahansa yksittäinen merkki, jota seuraa t ja lopuksi yksi tai useampi minkä tahansa merkin esiintyminen luetellaan.

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

8. Tässä poistetaan tiedostonimet, joihin on lisätty yksi tai useampi minkä tahansa merkin esiintymä, jota seuraa kirjaimet tar ja jotka päättyvät yhden tai useamman minkä tahansa merkin esiintymiseen.

$ ls
$ rm *tar*
$ ls

Kuinka sovittaa merkistöjoukko Linuxissa

9. Katsotaan nyt, kuinka määritetään joukko merkkejä. Harkitse alla olevia tiedostonimiä, jotka sisältävät järjestelmän käyttäjien tietoja.

$ 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

Tämä komento vastaa kaikkia tiedostoja, joiden nimi alkaa users-i , jota seuraa numero, pieni kirjain tai numero, sitten numero ja päättyy yhdellä tai useammalla minkä tahansa merkin esiintymällä.

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

Seuraava komento vastaa tiedostonimiä, jotka alkavat users-i , jota seuraa numero, pieni tai iso kirjain tai numero, sitten numero ja päättyy yhdellä tai useammalla minkä tahansa merkin esiintymällä.

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

Tämä seuraava komento vastaa kaikkia tiedostonimiä, jotka alkavat users-i , jota seuraa numero, pieni tai iso kirjain tai numero, sitten pieni tai iso kirjain ja päättyy yhteen tai useampaan esiintymään mikä tahansa merkki.

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

Kuinka neuvotella joukosta merkkejä Linuxissa

10. Voit myös hylätä merkkisarjan käyttämällä symbolia ! . Seuraava komento listaa kaikki tiedostonimet, jotka alkavat users-i , jota seuraa numero, mikä tahansa kelvollinen tiedostonimimerkki lukuun ottamatta numeroa, sitten pieni tai iso kirjain ja päättyy yhdellä tai useammalla mistä tahansa merkki.

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

Tässä kaikki tältä erää! Jos olet kokeillut yllä olevia esimerkkejä, sinun pitäisi nyt olla hyvä käsitys siitä, miten jokerit toimivat Linux-tiedostonimien vastaamiseksi.

Haluat ehkä lukea myös seuraavat artikkelit, joissa on esimerkkejä jokerimerkkien käytöstä Linuxissa:

  1. Tar-tiedostojen purkaminen tiettyyn tai eri hakemistoon Linuxissa
  2. 3 tapaa poistaa kaikki hakemiston tiedostot paitsi yksi tai muutama laajennuksella varustettu tiedosto
  3. 10 hyödyllistä vinkkiä tehokkaiden Bash-komentosarjojen kirjoittamiseen Linuxissa
  4. Awk- ja säännöllisten lausekkeiden käyttäminen tekstin tai merkkijonon suodattamiseen tiedostoihin

Jos sinulla on jotain jaettavaa tai kysyttävää, käytä alla olevaa kommenttilomaketta.