수백 개의 파일 이름 바꾸기

수백 개의 파일 이름 바꾸기

저는 Elementary OS(아직 UNIX 시스템에 익숙하지 않음)를 사용하고 있으며 기존 하드 드라이브에 정렬해야 할 수백 개의 텍스트 파일이 있습니다. 예를 들어 모든 텍스트 파일에는 이름이 있습니다.

lua-eng1-6TH4eI8gtf3.txt

모든 문자의 마지막 11자를 제거하지만 확장자는 계속 유지하는 명령이 필요합니다. 주위를 둘러보면서 "이름 바꾸기" 명령을 보았지만 그것이 나에게 적합한지 잘 모르겠습니다.

복사하고 붙여넣은 다음 무엇이든(예: 디렉토리) 변경할 수 있는 명령은 놀랍고 모든 기능을 설명합니다.

답변1

이 명령은 귀하와 동일한 패턴을 사용하여 일부 샘플 파일에서 테스트했으므로 귀하에게 효과적일 것입니다.

rename 's/(.*)(-.{11})\.txt$/$1\.txt/' *

설명하다:

이 간단한 명령을 보십시오:

rename 's/pattern/result/' filename(s)

패턴은 정규식일 수 있습니다. 따라서 텍스트의 다른 부분(예: 파일 이름)을 사용할 수 있습니다. 이해가 안 되신다면 구글 정규식을 이용해 보세요. 복잡해 보이지만 알고보면 간단합니다.

결과적으로 첫 번째 괄호의 내용을 제거 $1하고 두 번째 괄호를 그대로 두고 최종적으로 추가하게 되었습니다 .txt.

중요한 공지
먼저 옵션과 함께 명령을 실행하여 -n -v명령이 수행하는 작업을 확인하십시오. 원하는 결과가 나오면 옵션 없이 실행하세요. 먼저 다음과 같이 실행하세요.

$ rename -n -v 's/(.*)(-.{11})\.txt$/$1\.txt/' *
rename(lua - eng1-6TH4eI8gtf3.txt, lua - eng1.txt)
rename(lua - eng2-6TH4eI8gtf4.txt, lua - eng2.txt)
rename(lua - eng4-6TH4eI8gtf5.txt, lua - eng4.txt)

관련 정보