Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?  (gelezen 829 keer)

Offline Jenske

  • Lid
  • Steunpunt: Nee
Als ik mijn foto's inlaadt, krijgen deze een bepaald nummer, bv. POR_2014, POR_2015 enzovoort. Tijdens mijn fotografische werkzaamheden behoud ik ten allen tijde deze code in de naam, maar het gebeurt vaak dat ik de naam aanpas naar bv. "POR_2014 etentje jos in parijs met hond carlos", "POR_2015 etentje jos in parijs hond carlos springt net uit raam".

Bij het inlezen van een foto-geheugenkaart gebeurt het wel eens dat ik mijn eerder ingelezen opnames ben vergeten te wissen. Zo ontstaan er dus dubbels, die alleen als dusdanig herkenbaar zijn dat ze dezelfde basiscodering hebben, vb. POR_2014, POR_2015 enzovoort.

Ik zoek dus nu een programma dat gelijknamige bestanden kan uitzoeken op basis van een deel van de naam. In mijn geval ben ik dus enkel geïnteresseerd in het getal dat in de bestandsnaam voorkomt. Let op: ik wil géén zoekfunctie die de inhoud van de foto's vergelijkt, om volgende redenen:
  • zo'n functies duren erg lang op een bestand van >10.000 foto's
  • heel wat van mijn foto's lijken op elkaar en verschillen slechts in een klein beetje
  • ik wil nu eenmaal enkel op de bestandsnaam zoeken en hoef dus geen inhoudelijk opzoekwerk

Om gelijknamige bestanden te zoeken kan ik fslint gebruiken, maar dat biedt niet de flexibiliteit van op delen van namen te kunnen zoeken.
.. thuis volledig Ubuntu sinds 2006
.. xubuntu 14.04
.. HP desktop 1,5 Tbyte harde schijf 7200 rpm, 4 Mhz processor, 6 Gbyte RAM

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #1 Gepost op: 2012/11/10, 10:22:34 »
Een programma als dusdanig zou ik hiervoor niet weten te vinden. Ik zou proberen de bestanden op te lijsten en in één kolom in te voeren in een rekenblad. Dan sorteren op naam. In de tweede kolom aanduiden of het om een dubbel gaat: dit kan met een formule als: =IF(LEFT(A2,8)=LEFT(A1,8),1,0). Naast POR_2014 komt zo een 0 te staan, maar naast  "POR_2014 etentje jos" dat eronder staat, een 1.

Dan "bevries" je de waarden van die tweede kolom: formules omzetten naar de getalwaarden (copy, paste special: numbers). Dan sorteren op de tweede kolom: de namen zonder extra naam komen bovenaan te staan.

Nu wordt het een beetje ingewikkelder voor jou, want je wil geen bestanden wissen die je niet hebt hernoemd, alleen deze waarvan je een hernoemde kopie hebt. Dus wissen we alle rijen met een 0. Alleen de "lange" namen blijven over. We willen nu de korte equivalenten wissen.

In een derde kolom (C) maak je nu de korte namen: =left(A1,8).

In een vierde kolom maken we nu een bash script dat de bestanden zal opzoeken en wissen. Het commando, dat we zullen herhalen voor elk bestand, is:

find /home/jelogin/Pictures -name POR_2014.JPG -exec rm "{}" \;

Zo maak je voor elke bestandsnaam dit commando:
="find <naamvanjefotofolder> -name """&C1&""" -exec rm ""{}"" \;"

<naamvanjefotofolder> is uiteraard het correcte pad naar de folder met je fotocollectie.

Die kolom plak je in een tekstbestandje, en je laat dit uitvoeren. Dat zal een tijdje duren, maar de computer doet het alleen, en mocht je dit handmatig doen, dan zou het nog véél langer duren met jij die voortdurend aan het klikken bent.

Mogelijk bestaan er véél efficiëntere benaderingen, maar om die te horen is dit draadje er.

Offline jan11000

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #2 Gepost op: 2012/11/10, 10:40:26 »
Een windows programma gebruik ik hiervoor, doublekiller, wel de betaalversie.(wine dus ook installeren).
Daar kun je instellen,
met of zonder naam zoeken,
dan kan dit programma in file kijken, maar alleen een klein stukje, dan gaat hij later sterker kontroleren bij dezelfde file.
snelheid is zeer snel, koop versie is vlugger en meer functies.
(ik gebruik dit om grote en kleine files te checken op dubbel, in de koop versie kun je ook je cd/dvd/harde schijf info opslaan en dubbele files uitzoeken zonder alle harde schijven aan te sluiten).

Misschien is er een bash script die in de files kan kijken, maar die alleen een kleine stukje pakt en hier op vergelijkt, en daarna de hele file kontroleren.

Probeer deze eens http://cdcat.sourceforge.net/web/uk/index.html
« Laatst bewerkt op: 2012/11/10, 10:43:02 door jan11000 »

Offline RikRik

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #3 Gepost op: 2012/11/10, 12:09:23 »
Bestanden zoeken gaat razendsnel met Catfish. Een deel van een bestandsnaam is al voldoende.
Catfish staat in softwarecentrum

Offline redmar

  • Vertaalteam
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #4 Gepost op: 2012/11/10, 12:29:34 »
Bewerk je de foto's ook of hernoem je ze alleen? Als de fotos hetzelfde zijn kan je met md5sum dezelfde foto's eenvoudig terugvinden.
md5sum * | sort
Als een bepaalde foto twee keer voorkomt zie je twee keer dezelfde hash waarde in de uitvoer (bijv 68b329da9893e34099c7d8ad5cb9c940). Als je die foto's vervolgens automatisch wilt verwijderen zou je daar een scriptje voor kunnen schrijven

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #5 Gepost op: 2012/11/10, 13:07:56 »
Als je die foto's vervolgens automatisch wilt verwijderen zou je daar een scriptje voor kunnen schrijven
Dat is inderdaad wel een veel gemakkelijker oplossing  =D

Offline Jenske

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #6 Gepost op: 2012/11/19, 22:07:42 »
@redmar

Dat lijkt me inderdaad een fantastische suggestie.

Maar toch blijft een vraag: ik heb soms een reeks foto's die amper van elkaar verschillen, bv. bij bracketing-reeksen. Het kan dus als het ware zijn dat er veertien foto's van grootmoeder op staan, die, omdat ze weinig beweegt, erg op elkaar lijken, omzeggens hoogstens enkele pixels verschillen.

Als ik zo'n checksum uitvoer, komen die miniem verschillende foto's er dan ook uit als "niet gelijk"?
.. thuis volledig Ubuntu sinds 2006
.. xubuntu 14.04
.. HP desktop 1,5 Tbyte harde schijf 7200 rpm, 4 Mhz processor, 6 Gbyte RAM

Offline Jenske

  • Lid
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #7 Gepost op: 2012/11/19, 22:12:15 »
@Vanadium,

Schitterend uitgewerkt en leerrijk.
Eén nuance (die ik echter wel zelf op zou kunnen lossen binnen LibreOffice Math): ik wil juist wél de "lange" bestandsnaam behouden, aangezien mijn originele foto's enkel de code POR_2014 dragen. Als ik dan al ooit eens de moeite heb gedaan om die te hernoemen naar "POR_2014 mark vuurwerk verwonding loopt weg", wil ik natuurlijk dat die laatste behouden blijft en mag de POR_2014 zonder verdere aanduiding er dus uit.

Erg leerrijk overigens, zo'n uitleg met gebruikmaking van hash.
.. thuis volledig Ubuntu sinds 2006
.. xubuntu 14.04
.. HP desktop 1,5 Tbyte harde schijf 7200 rpm, 4 Mhz processor, 6 Gbyte RAM

Offline redmar

  • Vertaalteam
  • Steunpunt: Nee
Re: Gelijke bestanden zoeken op basis van een DEEL van de naam: hoe?
« Reactie #8 Gepost op: 2012/11/19, 22:30:55 »
Ja, md5sum is een cryptografische hash. Als er ook maar 1 bit in de input anders is krijg je een volkomen andere hash, dus foto's die (voor ons) sterk op elkaar lijken zijn geen probleem, zolang ze niet exact hetzelfde zijn.