BASH将js文件递归重命名为jsx

BASH将js文件递归重命名为jsx

在 Mac 上,我正在将一个 create React 应用程序迁移到 vite,并且有很多 *.js 文件需要更改为 *.jsx。我一生中手动完成过一次,这已经足够永恒了。

我需要一个简单易懂的脚本来最好在 Mac 安装上执行此操作,而无需安装任何东西。

我发现了很多现有的例子,但我尝试过的没有一个完全有效。

编辑 - -

为了奖励积分,这只发生在包含以下内容的文件中,import React因为这使得重构速度更快,并且手动检查更少。

答案1

尝试这个。

$ find . -name '*.js' -exec echo mv {} {}x \;
mv ./a/a.js ./a/a.jsx
mv ./a/z/z.js ./a/z/z.jsx
mv ./b/b.js ./b/b.jsx
$

一旦您对建议的命令的外观感到满意,只需删除该echo部分并尝试一下即可。

如果您有名为 .js 的目录,则这将不起作用,需要-type f添加。

奖励积分方面

根据后续编辑,要将重命名限制为仅包含“import React”行的文件,请使用 @Robert Smith 建议的以下解决方案。

find . -iname "*.js" -exec grep -q 'import React' {} \; -exec mv "{}" "{}x" \; 

相关内容