Переименуйте файлы с помощью регулярных выражений в командной строке

Я делаю ошибку при попытке переместить файлы из одного места в другое. Теперь все файлы перемещены, но в конце всех имен содержится *.

Как удалить все * из конца имен файлов в командной строке?

Примечание: Я работаю со встроенной системой, нет подключения к Интернету. Пожалуйста, предоставьте решения без необходимости устанавливать новые вещи.

Спасибо заранее

2
задан 13 August 2012 в 15:46

2 ответа

Существует команда под названием (в избытке оригинальности) rename, которая позволяет переименовывать файлы с помощью регулярных выражений.

В этом случае вы, вероятно, захотите сделать:

rename 's/\*//' files...

, который удалит первый * символ, найденный в каждом имени файла.

Вы можете использовать rename -n, чтобы перечислить переименования, которые будут выполняться, фактически не делая их, если вы беспокоитесь о неправильном регулярном выражении.

0
ответ дан 13 August 2012 в 15:46

Ubuntu поставляется с командой rename , которая может переименовывать файлы с помощью регулярных выражений.

Если все ваши файлы находятся в одной папке, вы можете просто сделать следующее:

rename s/\\*$// *

(\\* - экранированный *, $ - конец файла name. Совпадение будет заменено ничем.)

Если все ваши файлы находятся в структуре каталогов, вы можете использовать find:

find / -exec rename s/\\*$// {} \;

, которая выполняет rename /\\*$// для каждого файла и каталог в вашей системе. Не стесняйтесь сменить / на папку, в которой находится структура каталогов.

0
ответ дан 13 August 2012 в 15:46

Другие вопросы по тегам:

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