이 형식으로 이름이 지정된 수천 개의 PDF 파일이 있습니다.
Author Year Title of the book
처음 두 공백은 관련이 있습니다. 저자, 연도 및 제목을 구분합니다. 제목에는 공백이 여러 개 포함될 수 있습니다. 쓸 대본을 찾고 있어요작가도착하다작가PDF의 메타필드, 제목 간, 연도별 메타데이터. Exiftool은 제가 본 모든 도구 중에서 가장 유망한 것 같습니다.
도와주세요?
답변1
일부 EXIF 조작 도구에는 EXIF 데이터를 기반으로 파일 이름을 바꾸는 방법이 내장되어 있지만 이 작업을 반대로 수행하는 도구는 본 적이 없습니다. 따라서 쉘이 파일 이름의 올바른 부분을 사용하여 프로그램을 호출하도록 하십시오. 이는 하나의 파일만 처리하는 스크립트입니다(이름을 스크립트에 유일한 인수로 전달).
#!/bin/sh
title=${1##*/}
author=${title%% *}; title=${title#* }
year=${title%% *}; title=${title#* }
exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$1"
설명: 제가 사용하는매개변수 확장 구조몇 가지 기본 문자열 조작을 수행합니다. 기본 이름(마지막 이름 뒤에 /
) 을 첫 번째 공백 앞에 놓고 해당 title
부분 을 제거합니다 .author
title
디렉터리의 모든 파일을 처리하려면 이 코드를 루프에 넣으세요.
#!/bin/sh
for filename in *\ *\ *.pdf; do
title=${filename##*/}
author=${title%% *}; title=${title#* }
year=${title%% *}; title=${title#* }
exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$filename"
done
디렉터리와 해당 하위 디렉터리의 모든 파일을 재귀적으로 처리하려면 find
.
find /path/to/top/directory -name '* * *.pdf' -type f -exec sh -c '
for filename do
…
done
' _ {} +