Комбинирование символов подстановки
Часть раздела Основы путешествия по 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Задание
ЛегкоИспользуйте комбинацию символов подстановки, чтобы вывести только файлы фотографий .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Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данных