Title basically, I need to parse the date modified, the time and seconds in order to reconstruct the filenames in the format of an android phone’s camera roll.
I should be able to make the script once I know how to parse the metadata is all
maybe something like this using
mediainfo
andexiftool
?#!/bin/bash for file in *.jpg *.mp4; do # Extract date and time from file's metadata if [[ $file == *.jpg ]]; then datetime=$(exiftool -DateTimeOriginal -d "%Y%m%d_%H%M%S" "$file" | awk -F': ' '{print $2}') else datetime=$(mediainfo --Output="General;%File_Modified_Date%" "$file" | awk -F' ' '{print $1"_"$2}' | tr -d ':' | tr -d '-') fi # If datetime was found, rename the file if [ -n "$datetime" ]; then # Extract extension of file ext="${file##*.}" # Rename file with date and time as prefix (remove echo after testing it) echo mv -- "$file" "${datetime}.${ext}" fi done
Use ffprobe to get video info, it makes it dead easy. Practically a one liner.
You could use
stat
to get this information based on the file itself. And withjhead
for example you can get the additional meta data in the files, stored in the EXIF and IPTC tags.Both can be used in scripts.
Date modified can be obtained by ls assuming you haven’t touched the files. Ffprobe is your friend for video length.
I’ve been using ChatGPT to help come up with bash scripts like this. Make sure you test the script out on a folder of dummy files first if you’re not sure.
Chatgpt is your friend here. ;)
Probably I’m misreading it, but isn’t this kind of answer basically saying “google it”?
I don’t want to sound rude, but my english is kind of failing me, I’m just curious, but what’s the point?
One of the reasons of this kind of public forum is to share knowledge and experiences. ChatGPT is a closed, private, garden where the answer will just die.
I could get a “I don’t really know the answer but I used ChatGPT and it gave me this:” followed by a script, or something like that.
I know, this is off-topic and I’m sorry, I’m just really interested in Why, considering it’s said multiple times in this comment section.
chatgpt is built on the foundations of stackoverflow etc. therefore yeah it is kind of googling it.
however the nature of the generative approach of chatgpt gives you tailored answers.
when you google your question you get abstract answers for other related questions. with an explanation of how doing it. e.g. when I dont understand something but want to I will google it - to gain knowledge.
but with chatpgt you can specify - hey I want a functiom that does this and that in prints me a string/double using that format. chatpgt gives me exactly what I want - without fiddling with format strings etc. anithet example is regex. for my field of experience I am no core developer, therefore for me everything is a tool to get what I want. chatpgt can give this me in a more comfortable way. I dont need to master regex. but it is very helpful. therefore Im outsourcing that kind of work.
One of the reasons of this kind of public forum is to share knowledge and experiences. ChatGPT is a closed, private, garden where the answer will just die.
I agree that for a general standpoint this is valid. however for such simple questions we do not need new forums asking about the already discussed stuff. this is just repetition and we do not like duplicates (which is why forum rules are strict about this)
so I dont see any issue here.
could get a “I don’t really know the answer but I used ChatGPT and it gave me this:” followed by a script, or something like that.
that is the total responsibility by the user and has nothing to do with chatgpt. its the same as running ambiguous linux commands as sudo. its not the fault of stackoverflow, the reddit thread or linus itself. its the users fault.
therefore if such thing you mentioned happens. but it can be rejected - one should now about the culprits and strenghts of chatgpt.
edit: as you can see the top voted comment is a human made answer (could also be a chatpgt bot?).
so we are not yet doomed. ;)
Let’s see
Hi @ChatGPT@lemmings.world , write a bash script that extracts date of modification including seconds from all .jpg and .mp4 files in the current directory and prints it out
Sure, here is a simple Bash script which uses the
stat
command to get the modification time of files. It looks specifically for.jpg
and.mp4
files in the current directory and prints out the modification date and time, including seconds:#!/bin/bash # Iterate over .jpg and .mp4 files in the current directory for file in *.{jpg,mp4}; do # Check if the file exists before trying to extract the date if [ -e "$file" ]; then # Use stat to extract modification date and print it out echo "$file - Modification Date: $(stat -c %y "$file")" fi done
This script will print out the filename along with its modification date for each .jpg and .mp4 file.
You can use this script by saving it in a file (for example,
filedate.sh
), making it executable withchmod +x filedate.sh
, and running it with./filedate.sh
.Please note that the date format of the
stat
command can vary based on your system. The%y
format outputs the last modification time in human readable format (yyyy-mm-dd hh:mm:ss.sssssssss +zone
). You might need to adjust this if you are using a system wherestat
behaves differently.Also keep in mind that this script does not traverse directories recursively. It only looks for the specified files in the directory where it is executed. If you need to perform this operation on files in subdirectories, you will need to modify the script slightly or use a different approach.
@Pyrozo007@lemmy.dbzer0.com does it look like something you are looking for? The check for file existence is unneeded IMO and using the
file
variable name occludes another binary but in this case it shouldn’t hurt the execution
It literally is. This is a great use case for going down the chat gpt approach. It will help you throw together a script for this quickly.
yeah but in 80% of the time the less complex solutions are more quickly resolved using chatgpt.
waiting for another human is not instantaneous.
deleted by creator
for simple code snippets chatgpt can give you a really nice performance boost. plain routines where there is more syntax to write than actual cognitive thinking to do can be perfectly outsourced.