使用find和sed递归重命名文件
- 论坛
- 使用find和sed递归重命名文件
16 浏览
使用find和sed递归重命名文件
我想遍历一堆目录,并将所有以_test.rb结尾的文件重命名为以_spec.rb结尾的文件。这是我一直以来在bash中无法解决的问题,所以这一次我决定付出一些努力来解决它。然而,到目前为止,我还没有找到解决办法,我最好的尝试是:
find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \;
注:在exec之后有一个额外的echo,这样在我测试时会打印出命令而不是运行它。
当我运行它时,每个匹配的文件名的输出为:
mv original original
也就是说,sed的替换被丢失了。有什么技巧吗?