Menu
Coddy logo textTech

Вопросительный символ подстановки

Часть раздела Основы путешествия по Terminal на Coddy — урок 26 из 82.

Подстановочный символ знака вопроса ? соответствует ровно одному символу. В отличие от *, который соответствует любому количеству символов, ? более точен — каждый ? представляет позицию одного символа.

Например, если у вас есть эти файлы:

file1.txt
file2.txt
file3.txt
file10.txt
notes.txt

Использование ? для сопоставления файлов с ровно одним символом после file:

ls file?.txt

Вывод:

file1.txt
file2.txt
file3.txt

Обратите внимание, что file10.txt не соответствует, потому что 10 состоит из двух символов, а не одного.

Использование нескольких знаков вопроса:

Каждый ? соответствует ровно одному символу, поэтому их можно использовать последовательно:

ls file??.txt   # matches file10.txt, file23.txt etc.

Смешивание с другими символами:

ls ???.txt      # matches any .txt file with exactly 3-character name
ls img_?.jpg    # matches img_1.jpg, img_2.jpg but NOT img_10.jpg

Когда использовать ? против *:

  • Используйте ?, когда вы точно знаете, сколько символов варьируется
  • Используйте *, когда количество варьирующихся символов неизвестно
challenge icon

Задание

Новичок

Используйте подстановочный символ ? для вывода только тех файлов, которые соответствуют file?.txt — файлов с именем file, за которыми следует ровно один символ и заканчивающихся на .txt.

Подсказка: file10.txt не должен появляться в ваших результатах, потому что 10 — это два символа. Подстановочный символ ? соответствует только одному символу за раз.

Шпаргалка

Подстановочный символ вопросительного знака ? соответствует ровно одному символу. В отличие от *, который соответствует любому количеству символов, ? более точен — каждый ? представляет одну позицию символа.

Пример соответствия файлам с ровно одним символом после file:

ls file?.txt

Использование нескольких вопросительных знаков:

Цепочкой соединяйте несколько ? для соответствия нескольким символам:

ls file??.txt   # matches file10.txt, file23.txt etc.

Смешивание с другими символами:

ls ???.txt      # matches any .txt file with exactly 3-character name
ls img_?.jpg    # matches img_1.jpg, img_2.jpg but NOT img_10.jpg

Когда использовать ? вместо *:

  • Используйте ?, когда вы точно знаете, сколько символов варьируется
  • Используйте *, когда количество варьирующихся символов неизвестно

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы