Страница руководства дает два примера:
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/' *
вы сопоставляете пространство шаблонов регулярных выражений и транслитерируете к цели. Другими словами, диапазон A-Z изменяется на диапазон a-z, делая имена файлов строчными.
Я предлагаю вам заглянуть на страницу руководства для sed , чтобы узнать больше команд и подробностей. Я считаю, что команда 's' используется чаще всего. Также может помочь регулярное выражение (раздел 7) и документация на Perl. В частности, вот учебник по Perl и регулярным выражениям.
Из man sed
:
s/regexp/replacement/ Attempt to match regexp against the pattern space. If success‐ ful, replace that portion matched with replacement. The replacement may contain the special character & to refer to that portion of the pattern space which matched, and the special escapes \1 through \9 to refer to the corresponding matching sub-expressions in the regexp. y/source/dest/ Transliterate the characters in the pattern space which appear in source to the corresponding character in dest.