Radera kopior !

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
RicchiH
Inlägg: 343
Blev medlem: 26 sep 2007, 22:11
OS: Arch Linux
Ort: Jönköping
Kontakt:

Radera kopior !

Inlägg 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
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Radera kopior !

Inlägg 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.
Användarvisningsbild
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 !

Inlägg av uppsalanet »

Digkam kan leta dubletter med hjälp av "fingerprint".
Användarvisningsbild
RicchiH
Inlägg: 343
Blev medlem: 26 sep 2007, 22:11
OS: Arch Linux
Ort: Jönköping
Kontakt:

Re: Radera kopior !

Inlägg 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
Bowmore
Inlägg: 6212
Blev medlem: 28 mar 2007, 23:01
OS: Ubuntu
Ort: Stockholm

Re: Radera kopior !

Inlägg 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.
Användarvisningsbild
RicchiH
Inlägg: 343
Blev medlem: 26 sep 2007, 22:11
OS: Arch Linux
Ort: Jönköping
Kontakt:

Re: Radera kopior !

Inlägg 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
Bowmore
Inlägg: 6212
Blev medlem: 28 mar 2007, 23:01
OS: Ubuntu
Ort: Stockholm

Re: Radera kopior !

Inlägg 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
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Radera kopior !

Inlägg 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.
Användarvisningsbild
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 !

Inlägg 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 -- .
Skriv svar

Återgå till "Terminalforum"