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