Сторінка man містить два приклади:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Значить, це або s, або y і тоді /replaceThis/withThis
Що означає провідні s та y? Чи є інші варіанти?
Сторінка man містить два приклади:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Значить, це або s, або y і тоді /replaceThis/withThis
Що означає провідні s та y? Чи є інші варіанти?
Відповіді:
У першому випадку:
rename 's/\.bak$//' *.bak
ви використовуєте регулярний вираз проти назви файлів і замінюєте частину виразів (.bak в кінці імені файлу) другою фразою (яка порожня).
У другому випадку:
rename 'y/A-Z/a-z/' *
ви співпадаєте з простором простору шаблону виразів і транслітерацією до цілі. Іншими словами, діапазон AZ змінюється на діапазон az, що робить імена файлів нижчими.
Я пропоную вам переглянути сторінку man для sed для отримання додаткових команд та деталей. Я вважаю, що команда 's' використовується найчастіше. Як добре, регулярний вираз (розділ 7) та Perl документація також може допомогти. Зокрема, ось підручник з perl та регулярних виразів.
Від man sed
:
s / regexp / заміна / Спроба зіставити regexp з простором шаблону. Якщо успіх - ful, замініть відповідну частину заміною. The заміна може містити спеціальний символ & посилатися на це частина простору візерунка, яка відповідає, і спеціальна втече \ 1 до \ 9, щоб посилатися на відповідну відповідність суб-вирази в регулярному вираженні. y / джерело / dest / Транслітеруйте символи в просторі візерунків, які з'являються у джерелі до відповідного символу у dest.