Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

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

exiftool로 생성 시각을 가져온 다음 파일명을 변환해 준다

비디오 파일 파일명에 날짜와 시각을 넣으면 유용하다. 다음 스크립트로 그렇게 할 수 있는데, 우선 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 "[email protected]"
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

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다