Сторінка 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.