Vraag Hoe hernoem je de niet-verwijderde mp4 videofiles volgens de "gecodeerde datum"


Ik heb verwijderde videobestanden teruggevonden van sd-kaart en nu kan ik ze niet sorteren op datum.

Ik kan "gecodeerde datum" zien met mediainfo filename.

Hoe kan ik de "gecodeerde datum" gebruiken om video's te sorteren, zelfs om ze naar die datum te hernoemen of beter nog, "gewijzigde datum" naar bestandseigenschappen herschrijven?


1
2017-11-20 15:36


oorsprong




antwoorden:


Ervan uitgaande dat de outputlijn die je hebt er ongeveer zo uitziet (het datumformaat doet er niet toe):

Encoded date               : 2016-11-20

Je zou de bestanden kunnen hernoemen als hun datums met een klein script ...

i=0; for f in *; do printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p')-%02d.mp4" "$((++i))"; echo mv -v -- "$f" "$new"; done

Ik geef ze een eindnummer om ervoor te zorgen dat bestanden met dezelfde datum niet eindigen op exact dezelfde naam, waardoor sommige worden overschreven. Nieuwe bestandsnamen zullen zijn 2016-11-20-01.mp4 enz. of wat dan ook het datumformaat van "Gecodeerde datum" is voor jou. Verwijderen echo na het testen om de bestanden daadwerkelijk te hernoemen. Meer leesbare versie:

i=0
for f in *; do 
   printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p')-%02d.mp4" "$((++i))"
   echo mv -v -- "$f" "$new"
done

Uitleg

  • i=0 begin met itereren vanaf 0
  • for f in * voor alle bestanden in de huidige map (vervang deze indien nodig met het juiste pad of glob)
  • printf -v new vorm de nieuwe naam op deze manier
  • $(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p') extraheer de datuminformatie uit het veld Gecodeerde datum
  • -%02d.mp4" "$((++i))" voeg een nummer en extensie toe aan het einde van elke bestandsnaam
  • mv -v -- "$f" "$new" hernoem de bestanden

2
2017-11-20 16:07