我想浏览一堆目录并将所有以_test.rb结尾的文件重命名为_spec.rb结尾.这是我从未想过如何处理bash的事情所以这次我认为我会付出一些努力来实现它.到目前为止,我做得很短,我最大的努力是:
find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \;
Run Code Online (Sandbox Code Playgroud)
注意:在exec之后有一个额外的回声,所以在我测试时打印命令而不是运行.
当我运行它时,每个匹配文件名的输出是:
mv original original
Run Code Online (Sandbox Code Playgroud)
即sed的替换已经丢失.有什么诀窍?