Я читал о переименовании и наткнулся на этот пример, чтобы изменить расширение файла с htm на html:
rename -v 's/\.htm$/\.html/' *.htm
и он сказал: $
означает конец строки. \.htm$
означает, что он будет соответствовать .htm
, но не .html
.
Меня немного смутило использование здесь $
. Поскольку мы уже указали *.htm
в конце командной строки, rename
будет выбирать только файлы htm (вместо html). Так зачем было все еще использовать $
? Другими словами, что плохого в том, чтобы не использовать $
?
$
, которая обнаружит первое вхождение.htm
в имени файла, а не в его расширении (т.е., например,foo.htm.htm
станетfoo.html.htm
вместоfoo.htm.html
). - person Etan Reisner   schedule 28.03.2015rename
в системах Unix не позволяла использовать регулярные выражения, но многие дистрибутивы за последние несколько лет заменили ее сценарием Perl Ларри Уоллаrename
. Если вам повезет, в вашей системе может быть исходная командаrename
, доступная какrename.ul
. Тогда вам не придется иметь дело с регулярными выражениями. - person dg99   schedule 28.03.2015