비디오 파일의 파일명에 날짜와 시간을 박는 bash script

,

비디오 파일 파일명에 날짜와 시각을 넣으면 유용하다. 다음 스크립트로 그렇게 할 수 있는데, 우선 exiftool을 설치해 놔야 한다. 파일의 exif 정보를 볼 수 있는 커맨드라인 툴이다. 리눅스라면 저장소에서 설치할 수 있고, 맥이라면 brew로 설치한다.

이후 다음 스크립트를 실행하면 현재 폴더에 있는 MOV, mov, mp4 파일을 대상으로 작동한다.

실행하면 파일명의 맨 앞에 날짜와 시간을 넣게 된다.

아이폰, 캐논, 올림푸스가 생산한 영상 파일에서 작동하는 것을 확인했다. 안드로이드로 찍은 것은 안 해봐서 패스한다.

아래 내용을 긁어서 add-time-to.sh 같은 파일로 만든 뒤 chmod +x add-time-to.sh로 실행 권한을 주고 /usr/local/bin/ 같은 PATH 폴더로 이동시킨 뒤 어디서나 사용하면 된다.

아니면 그냥 아래 내용을 긁어서 커맨드 라인에 붙여넣기해도 된다.

빠르게 쓰고 버린 스크립트를 저장하는 용도로 쓰는 포스트였는데 스크립트 자체는 개량을 좀 했다. 그래도 자세한 설명과 응용법은 생략한다.

#!/usr/bin/env bash

test=$(which exiftool)
if [[ "$test" == "" ]]
then
    echo 'exiftool을 설치하세요.'
    exit 1
fi

if [[ "$1" == "" ]] 
then
    echo "ex)" $0 *.mov  '# mov 확장자 파일을 대상으로 진행'
    echo "ex)" $0 *.{mov,MOV}  '# mov, MOV 확장자 파일을 대상으로 진행'
    echo "ex)" $0 *.{mov,jpg,mp4,MOV,JPG,MP4}  '# mov, jpg, mp4, MOV, JPG, MP4 확장자 파일을 대상으로 진행'
    echo "ex)" $0 a.jpg  '# a.jpg를 대상으로 진행'
    exit 1
fi  

for f in "$@"
do 
    datetime=''

    if [[ $datetime == '' ]] 
    then
        datetime=$(exiftool -'CreationDate' "$f" | awk '{ print $4 "_" $5 }')
        datetime=${datetime/+09:00/}
        echo CreationDate: $datetime
    fi

    if [[ $datetime == '' ]] 
    then
        datetime=$(exiftool -'CreateDate' "$f" | awk '{ print $4 "_" $5 }')
        datetime=${datetime/+09:00/}
        echo CreateDate: $datetime
    fi

    if [[ $datetime == '' ]] 
    then
        datetime=$(exiftool -'DateTimeOriginal' "$f" | awk '{ print $4 "_" $5 }')
        datetime=${datetime/+09:00/}
        echo DateTimeOriginal: $datetime
    fi

    if [[ $datetime != '' ]] 
    then
        datetime=${datetime/:/-}
        datetime=${datetime/:/-}
        datetime=${datetime/:/-}
        datetime=${datetime/:/-}
        datetime=${datetime}
        echo "${datetime}_${f}"
        mv "$f" "${datetime}_${f}"
    else
        echo "$f의 시간값을 찾지 못했음."
    fi
done

👇 카테고리 글 목록

,

대표글

댓글 남기기