Назад | Перейти на главную страницу

Команда Find / Rename не улавливает имена файлов, которые я хочу найти

У меня есть эти два файла в моем домашнем каталоге -

hello_newest.txt
goodbye_newest.txt

Я хочу переименовать их так, чтобы "самая новая" часть имени файла была полностью удалена, чтобы они hello.txt и goodbye.txt

Это команда, которую я выполняю -

find -name "*.txt" -exec rename 's/newest//i' {} ";"

После того, как я запустил эту команду, он не выдает ошибку и не делает ничего с файлами. Я проверил http://www.computerhope.com/unix/rename.htm и похоже, что он должен работать, основываясь на некоторых из этих примеров.

Я уверен, что это что-то простое, но что мне не хватает?

Похоже, это может быть та версия Redhat, на которой мы были. Команда -

rename _newest '' *

Кажется, для достижения тех же целей.

Спасибо за помощь.

Другой синтаксис. Но у меня сработало:

for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done

Все файлы txt находятся с помощью цикла for, а затем символы после подчеркивания удаляются с помощью sed.