相关疑难解决方法(0)

使用find和sed递归重命名文件

我想浏览一堆目录并将所有以_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的替换已经丢失.有什么诀窍?

bash scripting replace sed find

80
推荐指数
7
解决办法
8万
查看次数

标签 统计

bash ×1

find ×1

replace ×1

scripting ×1

sed ×1