In các giá trị dữ liệu hình ảnh Exif cụ thể với exiv2


8

Làm cách nào để in hình ảnh ngày Exif bằng một công cụ như exiv2?

Mục tiêu của tôi là viết năm và tháng hình ảnh thành các biến riêng biệt. Tôi có thực sự phải phân tích cú pháp đầu ra với regex không hoặc có cách nào khác không?

exiv2 DSC_01234.NEF -ps | grep 'Image timestamp' | ...regex to parse the date

Câu trả lời:


7

Bạn có thể sử dụng -gcờ để chỉ xuất ra tài sản mà bạn quan tâm và -Pvđể in giá trị mà không có bất kỳ lông tơ xung quanh nào. Kết quả là dễ dàng phân tích cú pháp.

IFS=': '
set $(exiv2 -g Exif.Image.DateTime -Pv DSC_01234.NEF)
unset IFS
year=$1 month=$2 day=$3 hour=$4 minute=$5 second=$6

Nó cũng có thể hữu ích để thay đổi ngày tập tin để phù hợp với ngày hình ảnh : exiv2 -T DSC_01234.NEF.


Thật hoàn hảo. Tôi đang cố gắng cải thiện kiến ​​thức bash của mình trong khi viết một tập lệnh tạo các thư mục dựa trên ngày cho các hình ảnh và đổi tên các tệp một cách thích hợp như bạn đã đề cập.
apparat

0
OIFS=$IFS; IFS=': '
set -- $(exiv2 -g Exif.Image.DateTime -Pv DSC_01234.NEF)
IFS=$OIFS;
year=$1; month=$2; day=$3; hour=$4; minute=$5; second=$6;
echo "$year:$month:$day $hour:$minute:$second"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.