다양한 sed
, mv
및 rename
명령을 시도했지만 여전히 파일 이름을 바꿀 수 없습니다. 50개 이상의 파일이 있습니다. 찾은 명령을 사용해 보았습니다. 도와주세요.
원본 파일 이름:
PAGES_TEST1_SART1.XML
PAGES_TEST2_SART2.XML
PAGES_TEST3_SART3.XML
PAGES_TEST4_SART4.XML
도착하다
PAGES_PROD1_SART1.XML
PAGES_PROD2_SART2.XML
PAGES_PROD3_SART3.XML
PAGES_PROD4_SART4.XML
답변1
사용진주의rename
(모든 운영 체제에서 작동):
rename -n 's/TEST/PROD/g' ./*TEST*.XML
스위치 삭제 -n
, 일명.시운전당신의 시도가 만족스러울 때실제 이름으로 변경.
답변2
rename
어느 것을 사용하고 있습니까? 그리고
$ rename --version
rename from util-linux 2.39.3
다음으로 시작하세요:
$ ls -1
PAGES_TEST_SART1.XML
PAGES_TEST_SART2.XML
PAGES_TEST_SART3.XML
PAGES_TEST_SART4.XML
PAGES_TEST_SART5.XML
PAGES_TEST_SART6.XML
PAGES_TEST_SART7.XML
PAGES_TEST_SART8.XML
PAGES_TEST_SART9.XML
넌 할 수있어:
$ rename TEST PROD *
그리고 얻다:
$ ls -1
PAGES_PROD_SART1.XML
PAGES_PROD_SART2.XML
PAGES_PROD_SART3.XML
PAGES_PROD_SART4.XML
PAGES_PROD_SART5.XML
PAGES_PROD_SART6.XML
PAGES_PROD_SART7.XML
PAGES_PROD_SART8.XML
PAGES_PROD_SART9.XML
답변3
어쩌면 이 라인을 따라 (bash의 경우):
for f in \`ls | grep PAGES_TEST\`; do mv $f $(echo $f | sed 's/TEST/PROD/'); done
마지막에 확인 표시를 참고하세요.