10 exemple practice de utilizare a caracterelor metalice pentru a potrivi numele fișierelor în Linux


Caracterele metalice (denumite și meta caractere) sunt simboluri sau caractere speciale care reprezintă alte caractere. Le puteți folosi cu orice comandă, cum ar fi comanda ls sau comanda rm pentru a lista sau a elimina fișierele care corespund unui anumit criteriu, receptiv.

Citiți și: 10 exemple practice utile despre înlănțuirea operatorilor în Linux

Aceste metacaractere sunt interpretate de shell și rezultatele sunt returnate la comanda pe care o rulați. Există trei metacaractere principale în Linux:

  • Un asterisc (*) – se potrivește cu una sau mai multe apariții ale oricărui caracter, inclusiv niciun caracter.
  • Semnul întrebării (?) – reprezintă sau se potrivește cu o singură apariție a oricărui caracter.
  • Caractere între paranteze ([ ]) – se potrivește cu orice apariție a caracterului cuprins între paranteze drepte. Este posibil să utilizați diferite tipuri de caractere (caractere alfanumerice): cifre, litere, alte caractere speciale etc.

Trebuie să alegeți cu atenție ce wildcard să utilizați pentru a potrivi numele corecte de fișiere: este, de asemenea, posibil să le combinați pe toate într-o singură operație, așa cum este explicat în exemplele de mai jos.

Cum să potriviți nume de fișiere folosind caractere metalice în Linux

În scopul acestui articol, vom folosi următoarele fișiere pentru a demonstra fiecare exemplu.

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

1. Această comandă corespunde tuturor fișierelor cu nume care încep cu l (care este prefixul) și se termină cu una sau mai multe apariții ale oricărui caracter.

ls -l l*	

2. Acest exemplu arată o altă utilizare a * pentru a copia toate numele fișierelor prefixate cu users-0 și care se termină cu una sau mai multe apariții ale oricărui caracter.

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

3. Următoarea comandă se potrivește tuturor fișierelor cu nume care încep cu l urmate de orice caracter unic și se termină cu st.sh (care este sufixul ).

ls l?st.sh	

4. Comanda de mai jos corespunde tuturor fișierelor cu nume care încep cu l urmate de oricare dintre caracterele dintre parantezele pătrate, dar care se termină cu st.sh .

ls l[abdcio]st.sh 

Cum să combinați caracterele metalice pentru a potrivi numele fișierelor în Linux

Puteți combina metacaracterele pentru a construi un criteriu complex de potrivire a numelui de fișier, așa cum este descris în exemplele următoare.

5. Această comandă va potrivi toate numele fișierelor prefixate cu oricare două caractere urmate de st, dar care se termină cu una sau mai multe apariții ale oricărui caracter.

ls
ls ??st*

6. Acest exemplu corespunde numelor de fișiere care încep cu oricare dintre aceste caractere [clst] și se termină cu una sau mai multe apariții ale oricărui caracter.

ls
ls [clst]*

7. În aceste exemple, numai nume de fișiere care încep cu oricare dintre aceste caractere [clst] urmate de unul dintre aceste [io] și apoi orice singur caracter, urmat de un t și, în sfârșit, vor fi listate una sau mai multe apariții ale oricărui caracter.

ls
ls [clst][io]?t*

8. Aici, numele de fișiere prefixate cu una sau mai multe apariții ale oricărui caracter, urmate de literele tar și care se termină cu una sau mai multe apariții ale oricărui caracter vor fi eliminate.

ls
rm *tar*
ls

Cum să potriviți caracterele setate în Linux

9. Acum să vedem cum să specificați un set de caractere. Luați în considerare numele de fișiere de mai jos care conțin informații despre utilizatorii sistemului.

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

Această comandă va potrivi toate fișierele al căror nume începe cu users-i, urmat de un număr, o literă minusculă sau un număr, apoi un număr și se termină cu una sau mai multe apariții ale oricărui caracter.

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

Următoarea comandă se potrivește cu numele fișierelor care încep cu users-i, urmate de un număr, o literă sau un număr minuscul sau majuscul, apoi un număr și se termină cu una sau mai multe apariții ale oricărui caracter.

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

Această comandă care urmează va potrivi toate numele fișierelor care încep cu users-i, urmate de un număr, o literă sau un număr minuscul sau majuscul, apoi o literă mică sau mare și se termină cu una sau mai multe apariții de orice personaj.

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

Cum să anulați un set de caractere în Linux

10. Puteți, de asemenea, să anulați un set de caractere folosind simbolul !. Următoarea comandă listează toate numele de fișiere care încep cu users-i, urmate de un număr, orice caracter valid de denumire a fișierului în afară de un număr, apoi o literă mică sau mare și se termină cu una sau mai multe apariții ale oricărei caracter.

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

Asta este tot pentru acum! Dacă ați încercat exemplele de mai sus, acum ar trebui să înțelegeți bine cum funcționează metacaracterele pentru a potrivi numele fișierelor în Linux.

De asemenea, v-ar putea dori să citiți următoarele articole care arată exemple de utilizare a metacaracterelor în Linux:

  1. Cum să extrageți fișierele tar într-un director specific sau diferit în Linux
  2. 3 moduri de a șterge toate fișierele dintr-un director, cu excepția unuia sau a câtorva fișiere cu extensii
  3. 10 sfaturi utile pentru a scrie scripturi Bash eficiente în Linux
  4. Cum să utilizați expresiile Awk și obișnuite pentru a filtra textul sau șirul în fișiere

Dacă aveți ceva de împărtășit sau o întrebare(e) de pus, utilizați formularul de comentarii de mai jos.