Last active
November 15, 2024 23:32
-
-
Save parties/90cdf35f9a3d05bea6df76dc83a69641 to your computer and use it in GitHub Desktop.
rename all *.js files containing React markup to *.jsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# finds all *.js files that have either `</` or `/>` tags in them and renames them to *.jsx | |
find ./src -type f -name '*.js' -not -name '*.jsx' -not -name '*.ejs' -exec bash -c 'grep -l -E "</|/>" "$0"' {} \; -exec bash -c 'mv "$0" "${0%.js}.jsx"' {} \; |
Us poor windows users can use the following powershell command:
Get-ChildItem -Path ./src -Filter *.js -Recurse | Where-Object {
$_.Name -notlike '*.jsx' -and $_.Name -notlike '*.ejs'
} | ForEach-Object {
$fileContent = Get-Content $_.FullName
if ($fileContent -match '</|/>') {
$newFileName = $_.FullName -replace '\.js$', '.jsx'
Rename-Item -Path $_.FullName -NewName $newFileName
}
}
(The code above is ai generated but worked flawlessly for me. The matching logic should be the same as in the original bash script.)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you!