Что такое метасимволы Linux и как вы их используете

Узнайте, как метасимволы Linux расширяют использование инструментов командной строки

Согласно Википедии, метасимвол – это любой символ, имеющий особое значение, например, карат (^), знак доллара ($) или звездочка (*).

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

Полная остановка как метасимвол (.)

Скромный полный останов используется для указания текущей позиции при запуске таких команд, как cd, find или sh, но в таких приложениях, как awk, grep и sed, это подстановочный знак, используемый для обозначения определенного числа любого символа.

Например, следующая команда найдет все mp3-файлы в текущей папке и ее подпапках.

Если вы выполните эту команду в своем текущем рабочем каталоге (pwd), вы, вероятно, увидите возвращенные результаты, при условии, что вы храните ваши mp3-файлы в папке музыки в вашей домашней папке.

Теперь посмотрите на эту команду:

Команда ps выводит список всех запущенных процессов на вашем компьютере. Команда grep берет строки ввода и ищет шаблон.

Поэтому команда ps -ef возвращает список запущенных процессов. Метасимвол pipe (|) отправляет этот список в команду grep, которая ищет любую строку в списке, содержащую «f..efox», где точка относится к двум любым символам.

Если у вас запущен Firefox, вы получите совпадение. Точно так же, если у вас запущена программа с именем fonefox или freefox, они также будут возвращены.

Если вы знаете, что вам нужно искать только один символ, а не использовать “.” метасимвол, вы можете использовать «?». С помощью “?” относится к любому отдельному символу либо в начале, либо в конце шаблона.

Звездочка как метасимвол (*)

Звездочка является более широко известным метасимволом и используется для обозначения нуля или более любого символа при поиске шаблона.

Например:

* .Mp3 возвращает совпадение для любого имени файла, заканчивающегося на .mp3. Точно так же я мог бы использовать звездочку с командой grep в последнем разделе следующим образом:

Стоит отметить, что это немного отличается, потому что звездочка означает ноль или более, поэтому, кроме поиска Firefox, Facefox и Fonefox, он также может найти Flutefox, Ferretfox и даже просто Fefox.

Карат как метасимвол (^)

Карат (^) используется для обозначения начала строки или строки. Так как это используется?

Команда ls используется для вывода списка всех файлов в папке следующим образом:

Если вы хотите знать все файлы в папке, которая начинается с определенной строки, такой как «gnome», тогда для указания этой строки можно использовать карат.

Например:

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

В приведенном выше примере ls возвращает список имен файлов и передает этот список команде grep, которая используется для сопоставления с образцом. Grep знает, что символ карата означает найти все, что начинается с символов, следующих за ним, и в данном случае это «гном».

Символ доллара как метасимвол ($)

Символ доллара может иметь несколько значений в качестве метасимвола в Linux.

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

Например:

В этом списке перечислены все файлы, заканчивающиеся на png .

Символ доллара также используется для доступа к переменным среды в оболочке bash.

Например:

Строка export dog = molly создает переменную среды с именем dog и устанавливает ее значение «molly». Для доступа к переменной среды используется символ $. С символом $ оператор echo $ dog отображает «molly». Без этого оператор echo dog просто отображает слово dog.

Метасимволы (\\)

Иногда вы не хотите, чтобы метасимвол имел особое значение. Например, рассмотрим, есть ли у вас файл с именем f.refox и файл с именем firefox .

Теперь посмотрим на следующую команду:

Как вы думаете, что возвращается? И f.refox, и firefox возвращаются, потому что они оба соответствуют шаблону.

Чтобы вернуть только f.refox, вам нужно будет выйти из полной остановки, чтобы фактически означать полную остановку следующим образом:

Скобки как метасимвол ([])

Вы можете использовать скобки при поиске материалов. Скобки позволяют указать конкретные буквы, которые вы хотите сопоставить в любом месте шаблона.

Например:

В этом списке перечислены все файлы, которые начинаются с букв a, b или c.

Вы можете использовать скобки в начале, конце или даже в середине шаблона поиска.

Если вы хотите искать большой диапазон букв, вы можете вместо этого использовать символ переноса (-). Например, ls [a-h] * вернет все файлы, которые начинаются с любой буквы от a до h.

Метасимвол Акцента Могила

Во всех приведенных выше примерах метасимвол канала использовался для отправки результатов одной команды (например, команды ls) другой команде (например, команды grep).

Альтернативный способ сделать это – использовать обратную кавычку (также известную как акцентная могила), чтобы вставить результаты одной команды в другую команду.

Например:

Сначала будет запущена команда which jpg , чтобы определить, в каком каталоге находятся файлы jpg, и результаты этого поиска будут переданы команде ls , которая перечислит все из этих файлов.

Общие метасимволы и их значения











Символ Значение
. Любой символ
* Ноль или более символов
^ Соответствует любой строке или строке, начинающейся с шаблона (т.е. ^ gnome)
$ Соответствует любой строке или строке, заканчивающейся шаблоном (например, gnome $)
\ Экранирует следующий символ, чтобы удалить его особое значение
[] Соответствует одному из списка или диапазона (т. е. [“abc”, “def”] или [1..9]
+ Соответствует одному или нескольким предыдущим (т.е. grep a +)
Соответствует нулю или одному предшествующему
Оцените статью
Solutics.ru
Добавить комментарий