Intereting Posts
Проблема после обновления до Ubuntu 15.04 (иметь дело с любыми системными изменениями.) Ссылка была закрыта) Когда мы можем ожидать, что 12.04 (Точный Панголин) будет перенесен на «старые релизы»? Может ли команда mount монтировать файлы iso в виртуальные диски? Почему в Launcher есть зарезервированное место? Есть ли политика debian / ubuntu по программному привязке вещей к другому местоположению в списке после того, как они установлены? Сброс настроек панелей Xfce до настроек по умолчанию? Ошибка Csharp на ubuntu 14.04 Хранилище конфигурации phpMyAdmin не полностью настроено Ubuntu не загружается из-за проблем GRUB Синхронизация Bittorrent: разрешение запрещено? ОШИБКА нет места на ep-кольце с устройством USB 3.0 Arduino IDE не подключается к микроконтроллеру GEdit работает с несохраненным пустым документом Как вырезать и вставлять терминал ввода / вывода без использования мыши? Как установить Hasselblad Phocus на Ubuntu 12.04

Переименование нескольких файлов – linux / ubuntu

Мне нужно удалить «_1331045422» из файлов изображений в моем каталоге.

например, мое имя файла изображения выглядит так: message-16-error_1331045422.png

Я фактически запускал скрипт, который переименовывал все файлы изображений таким образом. Также у меня есть другие файлы (файлы изображений с правильными именами, js-файлами и css и т. Д., Которые имеют правильные имена)

Пожалуйста, помогите мне с командой переименовать все файлы изображений с помощью «_1331045422», не затрагивая других.

EDIT: У меня есть не только файлы .png с неправильным именем файла. Есть также gif и jpeg.

    Вы можете использовать команду rename:

    rename 's/_\d+(\..{1,3})/$1/g' *

    Вы можете изменить диапазон между {}, если у вас есть файлы с расширением длиной более трех символов.

    Будьте осторожны, что в какой-то системе команда rename немного отличается. Посмотрите здесь: https://superuser.com/questions/70217/is-there-a-linux-command-like-mv-but-with-regex

    Сделайте резервную копию своих файлов, прежде чем пытаться это сделать!

     #!/bin/bash for i in *.png; do mv $i `echo $i | sed "s/_[0-9]\+\.png^/\.png/"` done 
     #!/usr/bin/python # message-16-error_1331045422.png --> message-16-error.png # Usage: python foo.py dir_to_change import os, sys dir=sys.argv[1] for file in os.listdir(dir): if not file.endswith('.png'): continue new, end = file.rsplit('_', 1) new=u'%s.png' % new file_old=os.path.join(dir, file) file_new=os.path.join(dir, new) os.rename(file_old, file_new) 

    С rnm :

     rnm -rs '/_\d+(\.)(png|gif|jpg|jpeg)/\1\2/' * 

    Больше примеров здесь .