Kod: Markera allt
find . -type f -regex '.+\/[a-zåäö].*$'
I och med att mappen ”blandat” börjar med en gemen spelar det ingen roll att själva filen börjar med en versal../MinMapp/blandat/MinFil
Så vad jag behöver är ett uttryck som betyder ”alla tecken utom” eller rätt och slätt ”inte”. Om vi använder samma tecken som i C, det vill säga ”!”, så skulle det kanske se ut så här:
Kod: Markera allt
find . -type f -regex '.+\/[a-zåäö][!\/]*$'
Vad jag ska göra med detta sedan är att helt enkelt radera de berörda filerna. Jag har kollat och dubbelkollat att alla filer jag har i en viss mapp där filnamnet börjar på en gemen bokstav ha en dubblett med samma filnamn fast den börjar med en versal. Jag har nämligen klantat till det tidigare så att jag fått dessa dubbletter och nu är hårddisken nästan full…
Jag har också dubbelkollat att det inte finns någon fil med inledande gemen som inte har någon dubblett, så jag vet att det är säkert att ta bort dem. Jag har också en säkerhetskopia på en USB-hårddisk att ta till om något skulle gå snett, så att jag kan börja om från nuvarande utgångsläge. Tyvärr har jag ingen säkerhetskopia med samma tillstånd som det var innan jag klantat mig, eftersom jag inte upptäckte klanteriet förrän efter att jag hade gjort backup, så dubbletterna är alltså med på säkerhetskopian och det är alltså dessa jag vill få bort från såväl säkerhetskopia som på originalhårddisken.
Men som sagt, en ”inte”-möjlighet i ett reguljärt uttryck i find skulle lösa problemet.
I och för sig finns det väl något sorts dubblett-letarprogram också, har för mig att jag använt ett sådant för några år sedan, men det som är bra med terminalen är ju att man kan ”torrköra” och se hur det gick utan att man behöver köra skarpt…