SuperUberDuper Asked: 2022-07-08 06:13:09 +0800 CST2022-07-08 06:13:09 +0800 CST 2022-07-08 06:13:09 +0800 CST BASH递归将js文件重命名为jsx 772 在 Mac 上,我正在将一个 create react 应用程序迁移到 vite,并且有很多 *.js 文件需要更改为 *.jsx。我一生中手动完成过一次,这对永恒来说已经足够了。 我需要一个简单易懂的脚本来最好在 mac 安装上执行此操作,而无需安装任何东西。 我发现了很多现有的例子,但我尝试过的没有一个完全有效。 编辑 - - 对于奖励积分,这只发生在包含的文件中,import React因为这使得重构速度更快,手动检查更少。 files rename 1 个回答 Voted Best Answer steve 2022-07-08T06:42:46+08:002022-07-08T06:42:46+08:00 尝试这个。 $ 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" \;
尝试这个。
一旦您对建议的命令的外观感到满意,只需删除该
echo
部分,然后试一试。如果您有名为 .js 的目录,这将不起作用并且需要
-type f
添加。奖励积分方面
根据后续编辑,要将重命名限制为仅包含“import React”行的文件,请按照@Robert Smith 的建议使用以下解决方案。