수천 장의 jpg 저속 촬영이 있는데 낮에 촬영한 것만 나열할 수 있는지 궁금합니다. 따라서 두 날짜 사이의 파일을 나열하는 대신 특정 날짜의 두 시간 사이의 파일을 나열합니다. 예: 오전 6시부터 오후 6시 사이.
이 작업을 수행하기 위해 find를 사용할 수 있습니까?
답변1
이 명령은 나에게 효과적이었습니다.
find . -iname "*pg" -printf '%Tc %p\n' | grep "\ 08:\|\ 07:\| \06:"
그래도 검색용 EXIF 데이터 타임스탬프가 아닌 파일의 유닉스 타임스탬프입니다. 성능은 잘 모르겠지만 findutils
태그로 표시한 대로 이 답변을 드렸습니다.
답변2
파일에 생성 날짜와 시간이 포함된 EXIF 데이터가 있는 경우 exiftool
시간과 파일 이름만 나열하고 필터링할 수 있습니다.
find . -name '*jpg' -exec exiftool -q -d '%H' -p '$CreateDate $filename' \; 2>/dev/null |
awk '$1>=6 && $1<18 {$1=""; print}'
먼저 파일의 날짜/시간을 확인하여 현지 시간인지 아니면 시간대 오프셋이 있는 UTC인지 확인합니다. 단일 파일에서 실행하면 exiftool -CreateDate
출력은 다음과 같습니다.
Create Date : 2013:06:19 14:03:13+08:00
오프셋이 있는 경우(이 경우 +8시간)