BASH는 js 파일의 이름을 jsx로 재귀적으로 바꿉니다.

BASH는 js 파일의 이름을 jsx로 재귀적으로 바꿉니다.

Mac에서는 Create React 앱을 마이그레이션하여 *.jsx로 변경해야 하는 *.js 파일이 많이 있습니다. 나는 내 인생에서 한 번 수동으로 해본 적이 있으며 그것은 영원합니다.

아무 것도 설치하지 않고도 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" \; 

관련 정보