Я хочу просмотреть несколько каталогов и переименовать все файлы, заканчивающиеся на _test.rb, заканчивающиеся на _spec.rb.Это то, чего я никогда не понимал, как поступить с bash, поэтому на этот раз я подумал, что приложу некоторые усилия, чтобы добиться этого.Хотя я пока что не понял, мои лучшие усилия:
find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \;
Примечание: после exec есть дополнительное эхо, так что команда печатается вместо запуска, пока я ее тестирую.
Когда я запускаю его, для каждого совпавшего имени файла выводится:
mv original original
, то есть замена на sed была потеряна.В чем прикол?