Научете Linux

Заместващите символи в Linux са обяснени с 10 примера

Заместващите символи в Linux са обяснени с 10 примера

Заместващи символи, a.к.а. мета символи, са божи дар, когато става въпрос за търсене на конкретни имена на файлове от купчина файлове с подобно име. Например, като използвате заместващи символи в Linux, можете да използвате ls команда,  rm команда или която и да е друга команда на Linux за този въпрос върху множество файлове, стига да отговарят на определените критерии.

В това четене ще обсъдим как можете да използвате заместващи символи в Linux, за да рационализирате работния си процес и да станете по-продуктивни. Но първо, нека да разгледаме набързо най-мощните и често използвани заместващи символи в Linux:

  1. Звездичката (*): The (*) заместващ символ представлява произволен брой неизвестни знаци. Това е полезно при търсене на документи или файлове, но запомняне само на част от името му.
  2. Въпросният знак (?): The (?) заместващ символ представлява само един неизвестен знак. Това е полезно, когато имате списък с файлове с подобно име и не сте сигурни за няколко знака.
  3. Фигури в скоби ([]): The ([]) заместващ знак - 3-тата скоба, а не 1-вата скоба - се използва, за да съответства на всяко появяване на символи, дефинирани в скобите. Тази опция е удобна при работа с големи и малки букви, както ще видим по-късно.

Сега осъзнавам, че цялата тази информация няма смисъл, ако никога преди не сте имали работа с заместващи знаци. За да ви помогнем да изчистите объркването си, ние съставихме подробно ръководство, включващо 10 примера, за да сме сигурни, че правилно разбирате функцията на заместващи символи и да започнете да ги използвате сами.

Примери за съвпадение на имената на файлове с помощта на заместващи символи

За начало нека използваме всички различни заместващи символи, които обсъдихме по-рано и да видим как да ги използваме, за да съвпадат имената на файловете. За целта ще използваме следния набор от файлове:

  1. Тази команда ще съответства на всички имена на файлове, които започват с буквата М и завършва с едно или повече повторения от произволен знак.
$ ls -l M *

Изход:

Забележете как съвпада само с файловете, започващи с главни букви „M“, а не с малки букви „m“. 

2. Тази команда ще копира всички имена на файлове, започващи с My-Data и завършва с едно или множество повторения на произволен знак.

$ ls My-Data *

Изход:

3. Тази команда ще съответства на всички файлове, започващи с буквата М, завършващ с буквата н, и с който и да е 1 символ между тях.

$ ls M?н.ш

Изход:

4. Тази команда ще съответства на всички файлове, започващи с буквата М, завършващ с буквата н, но наличието на само 1 символ между тях принадлежи към списъка с символи, дефинирани в квадратните скоби [AEIOU].

$ ls M [AEIOU] N.ш

Изход:

4 Примера за комбиниране на различни заместващи символи за съвпадение на имената на файлове

Сега, за да увеличите ефективността си, можете да комбинирате и съчетавате тези заместващи символи, за да работите заедно и да бъдете по-ефективни при съвпадение на имената на файлове.

  1. Ето команда, която ще ви помогне да намерите всяко име на файл, което може да има произволни 3 знака (включително без знаци), последвано от торта и завършва с едно или повече повторения от произволен знак.
$ ls ???торта *

Изход:

2. Ето команда, която ще съответства на всички имена на файлове, които започват с някой от тези знаци в квадратните скоби [MNLOP] и завършват с едно или повече повторения с произволен характер.

Нека също да видим какво ще стане, когато заменим [MNLOP] с [mnlop].

Така че командите, които ще използваме, са:

$ ls [MNLOP] *
$ ls [mnlop] *

Изход:

Както можете да видите, трябва да сте наясно с големите и малки букви на буквите, които въвеждате в заместващия знак на скобата, тъй като това ще повлияе на резултата.

3. Ето команда, която ще съвпада с всички имена на файлове с някой от тези символи [MNLOP] като първия, всеки от тези знаци [AEIOU] като втория, последван от н, и накрая завършва с едно или повече повторения на всеки знак.

$ ls [MNLOP] [AEIOU] N *

Изход:

Забележете как (*) wildcard помага само за намиране на всички разширения на имената на файловете.4.

Ето команда, която ще съвпада с всички имена на файлове, които започват с едно или повече повторения на всеки символ, водещ до М, последвано от всеки 1 символ, след което последвано от н, и след това завършва с едно или повече повторения на произволен знак.

$ ls * M?Н*

Изход:

Използване на заместващи символи за съвпадение на набора от символи

Досега трябва да имате работно разбиране за това как работят заместващите знаци. Сега можем да се съсредоточим върху някои случаи на напреднала употреба, при които заместващите символи са безценни.

Например заместваща скоба ви позволява да дефинирате диапазон от знаци, използвайки [-] вместо да въвеждате всеки символ. Това може да бъде изключително полезно, когато искате да зададете набор от символи и да съвпадате с имената на файлове въз основа на това къде се появяват символите. 

За целта ще използваме следния набор от файлове, както е показано на изображението:

Както можете да видите, изображението, което създадохме, е списък с файлове, съдържащи различни данни за Pokemon.

Сега да намерите всички имена на файлове, които започват с Покемон- последвано от число, след това всеки буквено-цифров знак, отново последвано от число и след това завършващо с едно или повече повторения на всеки символ, можем да използваме следната команда:

$ ls покемон- [0-9] [0-9a-zA-Z] [0-9] *

Изход:

Частта [0-9] представлява всякакви цифрови знаци между 0 да се 9

Следващата част [0-9a-zA-Z] представлява произволен брой знаци между 0 да се 9, или която и да е малка буква между а да се z, или главна буква между A да се Z.

Като такива, ако се изключим [0-9a-zA-Z] с [0-9a-z], можете да видите, че резултатът не включва име на файл с главни букви в определената позиция.

$ ls покемон- [0-9] [0-9a-z] [0-9] *

Изход:

Използване на заместващи символи за отрицание на набор от символи

Подобно на това, че можете да посочите набор от символи, можете също да откажете набор от символи, докато съвпадате за имената на файловете. Ето пример за това как се прави:

$ ls pokemon- [0-9] [!a-z] [0-9] *

Изход:

Това съвпада с всички имена на файлове, които започват с Покемон- последвано от произволен цифров знак, след това от всеки символ, различен от малки букви, последван от произволен цифров знак и накрая завършващ с едно или повече повторения на който и да е символ.

Използвайки [!a-z], ние отричаме набора от всички малки букви. Сега имената на файловете съвпадат за всеки символ, който не е малка буква.

Обобщавайки

Така че стигаме до края на нашия бърз поглед върху заместващите символи на Linux и как да ги използваме. Обобщавайки всичко, накратко, звездичка (*) wildcard е най-полезен, когато знаете името на файла, но не и разширението. The въпросителен знак (?) wildcard може да ви помогне, ако забравите няколко знака с име на файл. The скоба ([]) wildcard е полезен, когато искате да съдържате търсенето си в набор от дефинирани символи.

Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...
Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...