Изучите Linux

Подстановочные знаки в Linux объяснены на 10 примерах

Подстановочные знаки в Linux объяснены на 10 примерах

Подстановочные знаки, a.k.а. мета-символы, являются находкой, когда дело доходит до поиска определенных имен файлов из кучи файлов с одинаковыми именами. Например, используя подстановочные знаки в Linux, вы можете использовать ls команда,  rm команда или любая другая команда Linux, если на то пошло, для нескольких файлов, если они соответствуют определенным критериям.

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

  1. Звездочка (*): The (*) подстановочный знак представляет любое количество неизвестных символов. Это полезно при поиске документов или файлов, но при запоминании только части их имени.
  2. Знак вопроса (?): The (?) подстановочный знак представляет только один неизвестный символ. Это полезно, когда у вас есть список файлов с одинаковыми именами и вы не уверены в нескольких символах.
  3. Персонажи в квадратных скобках ([]): The ([]) подстановочный знак - 3-я скобка, а не 1-я скобка - используется для сопоставления любых вхождений символов, определенных внутри скобок. Эта опция удобна при работе с файлами в верхнем и нижнем регистре, как мы увидим позже.

Теперь я понимаю, что вся эта информация не имеет смысла, если вы никогда раньше не сталкивались с подстановочными знаками. Однако, чтобы помочь вам избавиться от путаницы, мы составили подробное руководство, включающее 10 примеров, чтобы убедиться, что вы правильно понимаете функцию подстановочных знаков и начинаете использовать их самостоятельно.

Примеры сопоставления имен файлов с использованием подстановочных знаков

Для начала давайте используем все различные подстановочные знаки, которые мы обсуждали ранее, и посмотрим, как их использовать для сопоставления имен файлов. Для этого мы будем использовать следующий набор файлов:

  1. Эта команда будет соответствовать всем именам файлов, начинающимся с буквы M и заканчивается одним или несколькими вхождениями любого символа.
$ ls -l M *

Выход:

Обратите внимание, что он соответствует только файлам, начинающимся с заглавной «M», а не строчной «m». 

2. Эта команда скопирует все имена файлов, начинающиеся с Мои данные и заканчиваются одним или несколькими вхождениями любого символа.

$ ls Мои данные *

Выход:

3. Эта команда будет соответствовать всем файлам, начинающимся с буквы M, оканчивающийся на букву N, и имеющий любой 1 символ между.

$ ls млн?N.ш

Выход:

4. Эта команда будет соответствовать всем файлам, начинающимся с буквы M, оканчивающийся на букву N, но имеющий только 1 символ между ними принадлежит списку символов, определенных в квадратных скобках [AEIOU].

$ ls M [AEIOU] N.ш

Выход:

4 примера комбинирования разных подстановочных знаков для соответствия имен файлов

Теперь, чтобы повысить свою эффективность, вы можете смешивать и сопоставлять эти подстановочные знаки, чтобы работать вместе и быть более эффективными при сопоставлении имен файлов.

  1. Вот команда, которая поможет вам найти любое имя файла, которое может содержать любые 3 символа (включая символы без символов), за которыми следует кекс и заканчивается одним или несколькими вхождениями любого символа.
$ ls ???кекс*

Выход:

2. Вот команда, которая будет соответствовать всем именам файлов, которые начинаются с любого из этих символов в квадратных скобках [MNLOP] и заканчиваться одним или несколькими вхождениями любого символа.

Давайте также посмотрим, что произойдет, когда мы заменим [MNLOP] с участием [мнлоп].

Итак, команды, которые мы будем использовать:

$ ls [MNLOP] *
$ ls [млн] *

Выход:

Как видите, вам нужно помнить о верхнем и нижнем регистре букв, которые вы вводите в подстановочный знак скобки, так как это повлияет на результат.

3. Вот команда, которая сопоставит все имена файлов с любым из этих символов [MNLOP] как первый, любой из этих персонажей [AEIOU] как второй, за которым следует N, и, наконец, заканчивая одним или несколькими вхождениями любого символа.

$ ls [MNLOP] [AEIOU] N *

Выход:

Обратите внимание, как (*) подстановочный знак только помогает найти все расширения имен файлов.4.

Вот команда, которая будет соответствовать всем именам файлов, которые начинаются с одного или нескольких вхождений любого символа, ведущего к M, за которым следует любой 1 символ, затем следует N, а затем заканчиваются одним или несколькими вхождениями любого символа.

$ ls * M?N *

Выход:

Использование подстановочных знаков для соответствия набору символов

К настоящему времени у вас должно быть рабочее понимание того, как работают подстановочные знаки. Теперь мы можем сосредоточиться на некоторых сложных случаях использования, где подстановочные знаки неоценимы.

Например, скобка подстановочный знак позволяет вам определять диапазон символов, используя [-] вместо того, чтобы печатать каждый символ. Это может быть чрезвычайно полезно, если вы хотите указать набор символов и сопоставить имена файлов в зависимости от того, где появляются символы. 

Для этого мы будем использовать следующий набор файлов, как показано на изображении:

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

Теперь, чтобы найти все имена файлов, начинающиеся с покемон- за которым следует число, затем любой буквенно-цифровой символ, затем снова число, а затем заканчивается одним или несколькими вхождениями любого символа, мы можем использовать следующую команду:

$ ls pokemon- [0-9] [0-9a-zA-Z] [0-9] *

Выход:

Часть [0-9] представляет любые числовые символы между 0 к 9

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

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

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

Выход:

Использование подстановочных знаков для отмены набора символов

Подобно тому, как вы можете указать набор символов, вы также можете отрицать набор символов при сопоставлении имен файлов. Вот пример того, как это делается:

$ ls pokemon- [0-9] [!а-я] [0-9] *

Выход:

Это соответствует всем именам файлов, которые начинаются с покемон- за которым следует любой числовой символ, затем любой символ, кроме строчных букв, за которым следует любой числовой символ, и, наконец, заканчивающийся одним или несколькими вхождениями любого символа.

С использованием [!а-я], мы отменяем набор всех строчных букв. Теперь имена файлов сопоставляются с любым символом, кроме строчной буквы.

Заключение

Итак, это подводит нас к концу нашего краткого обзора подстановочных знаков Linux и того, как их использовать. Подводя итоги, в двух словах, звездочка (*) подстановочный знак наиболее полезен, когда вы знаете имя файла, но не знаете его расширение. В вопросительный знак (?) подстановочный знак может помочь вам, если вы забудете несколько символов имени файла. В скобка ([]) подстановочный знак полезен, когда вы хотите, чтобы ваш поиск находился в наборе определенных символов.

Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...
Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...