как я могу переименовать несколько файлов путем вставки символа?

Взгляните на, О, Мой проект Robbie Russell Zsh на GitHub - http://github.com/robbyrussell/oh-my-zsh

Существует набор темы там, которая должна дать Вам изрядное количество информации.

5
02.03.2012, 21:07
3 ответа

На Linux:

rename 'sw' 'sw.' sw*

На Debian, Ubuntu и производных, использовании rename.ul вместо rename (rename другая команда переименования файла на тех дистрибутивах).

5
27.01.2020, 20:33
  • 1
    Whups. Неправильная ссылка. :( –  Daniel Pittman 02.03.2012, 20:14
  • 2
    @Daniel: Что Вы имеете в виду "неправильную ссылку"? –  rsaw 02.03.2012, 20:17
  • 3
    я отредактировал свой комментарий - по-видимому, существует вторая утилита именем rename там. Который является потрясающим. Я связался с неправильной страницей руководства, но не заметил, потому что они достаточно близки... –  Daniel Pittman 02.03.2012, 20:19
  • 4
    . Интересно, что Вы говорите, что жемчуг переименовывает, обычно значение по умолчанию - я никогда не сталкивался с ним прежде вообще. Как Вы говорите, переименовывание, я знаком с, должен быть на большей части Linux boxen, поставлясь с util-linux. –  rsaw 02.03.2012, 20:47
  • 5
    я столь же удивлен, как Вы в противоположном направлении. :) –  Daniel Pittman 02.03.2012, 21:05

Если Вы не имеете rename и не испытывайте желание загружать его, используйте это:

for file in sw*; do
    mv "$file" "${file/sw/sw.}"
done
8
27.01.2020, 20:33
  • 1
    знать, что замена шаблона ${file/sw/sw.}" также файлы соответствий как FOOsw001. Кроме того - этот вид замены не поддерживается всеми оболочками. Удаление шаблона префикса должно быть более соответствующим и портативным: "$sw.{file#sw}" –  maxschlepzig 02.03.2012, 21:16
  • 2
    @maxschlepzig я предполагаю это, был бы, но из-за шарика все имена, с которыми это встречается обязательно, начинаются sw. Хороший для указания в целом все же. –  Kevin 02.03.2012, 21:20

Если Вы, банка может выразить преобразование как регулярное выражение Perl, переименовывают, который поставлется с Perl, большой выбор. Это применяет выражение Perl к каждому имени файла, затем меняет имя, если это отличается. Часто, замена регулярного выражения Perl - то, что Вы хотите:

rename 's/sw/sw./' sw*

Это отличается от переименовывания (1), который поставлется с util-linux-ng, но обычно версия Perl является значением по умолчанию. Посмотрите man 1 rename проверять, который имеет Ваша система.

1
27.01.2020, 20:33
  • 1
    Можно ли помочь мне понять то, что / означает нотация? –  Paul 02.03.2012, 20:09
  • 2
    Надо надеяться, то редактирование является более четким: страница справочника была для другой утилиты с тем же именем, и я не заметил, потому что это было достаточно близко. Perl переименовывает, применяет выражение Perl;///' является заменой регулярного выражения. –  Daniel Pittman 02.03.2012, 20:18
  • 3
    Если это rename выражение является действительно регулярным выражением, . символ означал бы "любой символ", таким образом, его нужно оставить, чтобы быть взятым буквально. глюк –   02.03.2012, 20:45
  • 4
    @hesse, это было бы в части соответствия, не в сменной детали. :) –  Daniel Pittman 02.03.2012, 21:05
  • 5
    Версия Perl является значением по умолчанию в Debian и производных включая Ubuntu. Это не поставляется другими дистрибутивами. –  Gilles 'SO- stop being evil' 03.03.2012, 01:01

Теги

Похожие вопросы