Radera kopior !
Radera kopior !
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
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
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
Re: Radera kopior !
Denna lilla snutt listar alla filer "*:10.00.10" och om *.10.00.10 finns tas den bort.
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.

Kod: Markera allt
for f in "*:10.00.10"; do d="${f%:10.00.10}.10.00.10"; [ -f "$d" ] && rm "$d"; done
OBS detta fungerar inte för filer med mellanslag i namnet.
- uppsalanet
- Fadder
- Inlägg: 257
- Blev medlem: 29 sep 2008, 22:05
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Uppsala
Re: Radera kopior !
Digkam kan leta dubletter med hjälp av "fingerprint".
Re: Radera kopior !
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
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 !
För de formaten bör detta fixa ditt problem:
Koden ersätter kolon i namnet med punkt och raderar motsvarande fil (med punkt istf kolon) om den finns.
Kod: Markera allt
for f in `ls`;do rm -f ${f/:/.};done
Re: Radera kopior !
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
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 !
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.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.
Kod: Markera allt
for f in `ls`;do fdot=${f/:/.};if [ $f != $fdot ];then rm -f $fdot;fi;done
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Radera kopior !
Observera att det där inte fungerar om det t.ex. finns mellanrum i något av filnamnen.Bowmore skrev:Kod: Markera allt
for f in `ls`;do fdot=${f/:/.};if [ $f != $fdot ];then rm -f $fdot;fi;done
- uppsalanet
- Fadder
- Inlägg: 257
- Blev medlem: 29 sep 2008, 22:05
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Uppsala
Re: Radera kopior !
http://www.jhnc.org/findimagedupes/manpage.htmluppsalanet skrev:Digkam kan leta dubletter med hjälp av "fingerprint".
Kod: Markera allt
findimagedupes -R -- .