대체 파일 이름이 포함된 텍스트 파일을 사용하여 파일 이름을 바꾸는 스크립트

대체 파일 이름이 포함된 텍스트 파일을 사용하여 파일 이름을 바꾸는 스크립트

수천 개의 파일이 포함된 폴더가 있습니다.

file1.jpeg
file2.jpeg
file3.jpeg

등.

교체하려는 새 파일 이름 목록이 포함된 텍스트 파일이 있습니다.

old_filename     new_filename
file3.jpeg       my_dog.jpeg
file1.jpeg       my_cat.jpeg
file2.jpeg       my_goat.jpeg

등.

폴더에 있는 모든 파일의 이름을 새 파일 이름으로 바꾸거나 새 이름을 원래 파일 이름의 접두어로 추가하는 스크립트를 찾고 있습니다.

폴더를 검색하고 이름을 텍스트 파일과 비교한 다음 그에 따라 파일 이름을 바꾸려면 뭔가가 필요한 것 같습니다.

목록과 파일은 어떤 방식으로도 정렬되지 않습니다.

답변1

이 작업을 시도하기 전에 먼저 백업이 있는지 확인하세요.

다행스럽게도 귀하의 예에는 이전 이름과 새 이름에 공백이 없으며 하위 디렉터리에 대한 언급도 없습니다(모두 동일한 디렉터리에 있음). 따라서 목록의 모든 행은 다음과 같습니다.

  1. 이미지와 rename_rules.txt같은 디렉토리에
  2. cd로 디렉토리에 들어가세요
  3. 달리기:

     eval "$(sed 's/^/mv /g' rename_rules.txt )"
    
    • 각 행에는 rename_rules.txt쌍만 포함됩니다.oldname newname
    • sedrename_rules당신을 다음으로 변환하는 데 사용되었습니다 .mv oldname newname
    • eval그런 다음 이를 실행하는 데 사용되므로 파일 이름이 변경됩니다.

oldname newname면책조항: 이 간단한 짧은 스크립트에는 유효성 검사나 파일 검사가 전혀 내장되어 있지 않습니다. 따라서 이름 바꾸기 쌍 중 하나에 오류가 있을 경우를 대비해 가장 먼저 해야 할 일은 백업이 있는지 확인하는 것입니다. 최소한 백업으로 시작할 수 있습니다

관련 정보