Files

BASH遞歸將js文件重命名為jsx

  • July 7, 2022

在 Mac 上,我正在將一個 create react 應用程序遷移到 vite,並且有很多 *.js 文件需要更改為 *.jsx。我一生中做過一次這本手冊,這對永恆來說已經足夠了。

我需要一個簡單易懂的腳本來最好在 mac 安裝上執行此操作,而無需安裝任何東西。

我發現了很多現有的例子,但我嘗試過的沒有一個完全有效。

編輯 - -

對於獎勵積分,這只發生在包含的文件中,import React因為這使得重構速度更快,手動檢查更少。

嘗試這個。

$ 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" \; 

引用自:https://unix.stackexchange.com/questions/708979