Метасимволы 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.

Например:

Линия Экспортная собака = Молли создает переменную среды с именем собака и устанавливает его значение «Молли». Для доступа к переменной среды используется символ $. С символом $, эхо $ собака Заявление отображает «Молли». Без этого эхо собака Заявление просто отображает слово собака.

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

Например:

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

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

символСмысл
.Любой персонаж
*Ноль или более символов
^Подберите любую строку или строку, которые начинаются с шаблона (т.е. ^ gnome)
$Подберите любую строку или строку, заканчивающуюся шаблоном (например, gnome $)
\Избегает следующего символа, чтобы удалить его особое значение
[]Соответствует одному из списка или диапазона (т. Е. [«Abc», «def»] или [1..9]
+Соответствует одному или нескольким предыдущим (то есть grep +)
?Соответствует нулю или одному предшествующему

Список метасимволов Linux

Ссылка на основную публикацию