29 lines
		
	
	
		
			756 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			756 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # Sets EXIF date from filename yymmdd_HHMMSS.jpg
 | |
| for f in *.jpg *.JPG; do
 | |
|     if [ "$f" = "*.jpg" -o "$f" = "*.JPG" ]; then
 | |
|         continue
 | |
|     fi
 | |
|     echo "File: $f"
 | |
|     DATEPART=${f:0:13}
 | |
|     if [ ${#DATEPART} -ne 13 ]; then
 | |
|         echo "No date in filename: $f"
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     if ! [[ "$DATEPART" =~ ^[0-1][0-9]{5}_[0-9]{6}$ ]]; then
 | |
|         echo "Not numeric: $DATEPART ($f)"
 | |
|         continue
 | |
|     fi
 | |
| 
 | |
|     YEAR="20${DATEPART:0:2}"
 | |
|     MONTH=${DATEPART:2:2}
 | |
|     DAY=${DATEPART:4:2}
 | |
|     HOUR=${DATEPART:7:2}
 | |
|     MINUTE=${DATEPART:9:2}
 | |
|     SECOND=${DATEPART:11:2}
 | |
| 
 | |
|     DATE="$YEAR:$MONTH:$DAY $HOUR:$MINUTE:$SECOND"
 | |
|     exiv2 mo -M "set Exif.Photo.DateTimeOriginal '$DATE'" -M "set Exif.Photo.DateTimeDigitized '$DATE'" $f
 | |
| done
 |