Ответ 1
rename -n 's/.{5}(.*)/$1/' *
-n
предназначен для имитации; удалите его, чтобы получить фактический результат.
я использую
ls | cut -c 5-
Это возвращает список имен файлов в формате, который я им хочу, но фактически не выполняет действие. Пожалуйста, порекомендуйте.
rename -n 's/.{5}(.*)/$1/' *
-n
предназначен для имитации; удалите его, чтобы получить фактический результат.
вы можете использовать следующую команду, когда находитесь в папке, где вы хотите переименовать:
rename -n -v 's/^(.{5})//' *
-n
для каких-либо действий и -v
чтобы показать, какими будут изменения. если вы удовлетворены результатами, вы можете удалить оба из них
rename 's/^(.{5})//' *
Что-то вроде этого должно работать:
for x in *; do
echo mv $x 'echo $x | cut -c 5-'
done
Обратите внимание, что это может быть разрушительным, поэтому сначала запустите его таким образом, а затем удалите ведущее echo
только вы уверены, что он делает то, что вы хотите.
Если вы получите сообщение об ошибке:
переименование не распознается как имя командлета
Это может сработать для вас,
get-childitem * | rename-item -newname { [string]($_.name).substring(5) }