Menu
Coddy logo textTech

Комбинирование символов подстановки

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

Настоящая сила символов подстановки проявляется, когда вы комбинируете их вместе. Вы можете смешивать *, ? и [] в одном шаблоне, чтобы создать очень точное сопоставление файлов.

Дана следующая файловая система:

photo_1.jpg
photo_2.jpg
photo_10.jpg
photo_1.png
photo_2.png
report_1.txt
report_2.txt
notes.txt

Комбинирование * и []:

Вывести список всех файлов изображений (как .jpg, так и .png):

ls *.{jpg,png}    # using brace expansion
ls *.[jp]*        # matches .jpg, .png, .jpeg etc.

Комбинирование ? и []:

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

ls photo_[0-9].jpg   # matches photo_1.jpg and photo_2.jpg only

Комбинируя все три:

Сопоставляет любой файл отчёта с одной цифрой:

ls *_[0-9].txt     # matches report_1.txt and report_2.txt

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

ls [pr]*_?.txt    # starts with p or r, then anything, then underscore, one char, .txt

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

Переместить все jpg-фотографии с однозначными номерами в папку:

mv photo_[0-9].jpg archive/

Удалить все .log файлы из любой подпапки:

rm */*.log
challenge icon

Задание

Легко

Используйте комбинацию символов подстановки, чтобы вывести только файлы фотографий .jpg с одноцифровым номером — то есть photo_1.jpg и photo_2.jpg, но не photo_10.jpg или любые файлы .png.

Подсказка: Объедините фиксированный текст photo_, диапазон в скобках для одиночных цифр и расширение .jpg в один шаблон.

Шпаргалка

Символы подстановки можно комбинировать вместе, чтобы создавать точные шаблоны соответствия файлов, смешивая *, ? и [].

Комбинирование * и []:

ls *.{jpg,png}    # using brace expansion for multiple extensions
ls *.[jp]*        # matches .jpg, .png, .jpeg etc.

Комбинирование ? и []:

ls photo_[0-9].jpg   # matches single-digit photo files only

Комбинирование всех трех символов подстановки:

ls *_[0-9].txt     # matches files ending with underscore, single digit, and .txt
ls [pr]*_?.txt     # starts with p or r, then anything, underscore, one char, .txt

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

mv photo_[0-9].jpg archive/   # move single-digit jpg photos
rm */*.log                     # delete .log files from any subfolder

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

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

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

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