Как удалить префикс из нескольких файлов в каталоге

У меня есть ~ 250 файлов с именем:

no_responseEvent_2002.02.07.03.15.56.970/ no_responseEvent_2002.02.10.01.47.07.450/ no_responseEvent_2002.02.13.14.18.46.00/ 

Я хочу удалить 'no_response' из каждого имени файла.
Как мне это сделать?
Я знаю, что цикл for может работать, но я смущен тем, как его реализовать.

One Solution collect form web for “Как удалить префикс из нескольких файлов в каталоге”

Я предполагаю, что все 250 файлов находятся в одном каталоге и следуют одному и тому же шаблону именования. Если это так, вы можете сделать это,

 for i in "$remove"*;do mv "$i" "${i#"$remove"}";done 

тестирование

 ls no_responseEvent_2002.02.07.03.15.56.970 no_responseEvent_2002.02.07.03.15.56.972 no_responseEvent_2002.02.07.03.15.56.971 no_responseEvent_2002.02.07.03.15.56.973 

Теперь, после запуска цикла for , я получаю вывод как,

 remove=no_response for i in "$remove"*;do mv "$i" "${i#"$remove"}";done ls Event_2002.02.07.03.15.56.970 Event_2002.02.07.03.15.56.971 Event_2002.02.07.03.15.56.972 Event_2002.02.07.03.15.56.973 

Рекомендации

http://www.commandlinefu.com/commands/view/2519/uniformly-correct-filenames-in-a-directory

  • рекурсивный поиск и печать последнего файла tar.gz в каждом каталоге
  • Как найти файл, имя которого содержит заданную строку, например «abcde»?
  • Исключить пути, которые заставят find жаловаться на разрешения
  • «Где» и «найти» во FreeBSD
  • простая команда «find» не работает
  • Найти файл с шаблоном именования
  • Как удалить все, кроме числовых каталогов верхнего уровня?
  • Удаление файлов старше 500 дней
  • size в find (версия 4.4.2) не понимает префикс kilo
  • Обоснование найти отображение команды. каталог
  • Найдите общее использование диска, не включая файлы, содержащие строку
  • Linux и Unix - лучшая ОС в мире.