Sida 1 av 1

Radera kopior !

Postat: 18 nov 2012, 10:11
av RicchiH
Hej !

Jag har råkat ställa till det lite för mig med mina bilder.
I flera av mapparna har jag samma bilder 2 gånger med den lilla skillnaden att den ena har ett kolon i namnet där den andra har en punkt.
Filerna ser ut enligt följande modell:

20120101.10.00.10 och 20100101:10.00.10

Jag skulle vilja ta bort filen med punkten om det finns nån fil med ett kolon med i övrigt samma namn.

Naturligtvis kan man ju sitta och sortera ut alla bilderna för hand, men visst finns det något smidigare sätt att göra detta på i terminalen ?

kanske nåt litet script man kan köra som tar bort filerna med punkten om de finns ett med samma namn fast med ett kolon.

Har kollat lite på rename och reguljära uttryck, men lyckas inte få till det.
nån som kan bistå lite med sina terminalkunskaper och ett smidigt sätt att få detta gjort.

Tack

Re: Radera kopior !

Postat: 18 nov 2012, 20:58
av mcNisse
Denna lilla snutt listar alla filer "*:10.00.10" och om *.10.00.10 finns tas den bort. ;)

Kod: Markera allt

for f in "*:10.00.10"; do d="${f%:10.00.10}.10.00.10"; [ -f "$d" ] && rm "$d"; done
vill du vara titta på det som tas bort så byt ut rm mot ls.
OBS detta fungerar inte för filer med mellanslag i namnet.

Re: Radera kopior !

Postat: 18 nov 2012, 21:18
av uppsalanet
Digkam kan leta dubletter med hjälp av "fingerprint".

Re: Radera kopior !

Postat: 18 nov 2012, 22:10
av RicchiH
Tack Mcnisse !
Men tyvärr fungerade inte det riktigt som jag hade tänkt mig eftersom det inte alltid kommer att stå samma sak.

Det är en kod för datum klockslag och skulle alltså bli för dagens datum kl 12.30 exakt

20121118:1230.00

Re: Radera kopior !

Postat: 19 nov 2012, 01:39
av Bowmore
För de formaten bör detta fixa ditt problem:

Kod: Markera allt

for f in `ls`;do rm -f ${f/:/.};done
Koden ersätter kolon i namnet med punkt och raderar motsvarande fil (med punkt istf kolon) om den finns.

Re: Radera kopior !

Postat: 19 nov 2012, 20:13
av RicchiH
Hej Bowmore !

När jag körde detta ( i en testmapp tack och lov) så togs filerna som hade ett kolon i sig bort utan att det skapades nån fil med samma namn fast med en punkt först.
Jag tror det saknas något i kommandot för att det skall skapas en kopia av filen med kolon först, innan filen som endast innehåller punkt tas bort.

Kanske är jag otydlig men jag vill alltså bara ta bort filen med punkt om det finns en med ett likadant namn fast med kolon istället.

Tack

Re: Radera kopior !

Postat: 19 nov 2012, 20:26
av Bowmore
RicchiH skrev:Kanske är jag otydlig men jag vill alltså bara ta bort filen med punkt om det finns en med ett likadant namn fast med kolon istället.
Ok, här en lösning som för varje fil nnnnnnnn:nn.nn.nn tar bort motsvarande fil nnnnnnnn.nn.nn.nn om den finns.

Kod: Markera allt

for f in `ls`;do fdot=${f/:/.};if [ $f != $fdot ];then rm -f $fdot;fi;done

Re: Radera kopior !

Postat: 19 nov 2012, 20:42
av Konservburk
Bowmore skrev:

Kod: Markera allt

for f in `ls`;do fdot=${f/:/.};if [ $f != $fdot ];then rm -f $fdot;fi;done
Observera att det där inte fungerar om det t.ex. finns mellanrum i något av filnamnen.

Re: Radera kopior !

Postat: 20 nov 2012, 15:41
av uppsalanet
uppsalanet skrev:Digkam kan leta dubletter med hjälp av "fingerprint".
http://www.jhnc.org/findimagedupes/manpage.html

Kod: Markera allt

findimagedupes -R -- .