Permalänk
Medlem

Filer med duplikat i filnamnet

Efter att ha kört en del tester har jg en katalog med ett större antal TAR-filer. De flesta av dem har alfanumeriska namn som:

abc123.tar
dde7.tar
fel13.tar

Men så finns det ett par där mitt script gjorde fel så att istället för t.ex. fel17.tar så har jag fel17fel17.tar.

Jag skulle nu vilja skapa en lista över den den "unika" delen av namnet(fel17) som också är namnet på testet så att jag kan köra om dessa.
Går det att få till på något enkelt sätt på en dator med Ubuntu 22.04 eller är det visuell inspektion som gäller?

Permalänk
Medlem

Förutom att de har filnamnet dubbelt, finns det något mönster man skulle kunna utnyttja? ex. att "rätt ska vara 5 tecken långt" eller "börjar med några bokstäver och slutar med siffror"? Isåfall skulle det vara (lättare) att skriva ett regex som kan hjälpa till. Annars går det nog att få till med regex backreference också, men spontant känner jag att det kan lätt gå snett om man inte har något sånt mönster att förlita sig på.

https://www.regular-expressions.info/backref.html

Posta gärna en lista på ~10-20 faktiska filnamn som både gått rätt och fel så kanske jag kan hjälpa skriva ett sånt regex

Permalänk
Avstängd

Gör väl vad du önskar, printar ut duplicate filename av dubletter.

awk -F'/' '{ f = $NF a[f] = f in a? a[f] RS $0 : $0 b[f]++ } END{for(x in b) if(b[x]>1) printf "Duplicate Filename: %s\n%s\n",x,a[x] }' <(find /mappen/till/dubletterna -type f)

Samma, via md5sum där olika namn finns som i ditt fall:

awk '{ md5=$1 a[md5]=md5 in a ? a[md5] RS $2 : $2 b[md5]++ } END{for(x in b) if(b[x]>1) printf "Duplicate Files (MD5:%s):\n%s\n",x,a[x] }' <(find /mappen/till/dubletterna -type f -exec md5sum {} +)

Vill du använda dig av färg te.x, så har jag delat detta 2019 då med parallel och 200% cpu på varje core men det är ju vid större sökning av mappar te.x där det finns ett par terrabyte/petabyte:

https://www.commandlinefu.com/commands/matching/glftpd/Z2xmdH...

Vill du göra det väldigt enkelt för dig, så finns fdupes.

https://github.com/adrianlopezroche/fdupes

Exempel:

fdupes -r /mappen/till/dubletterna > ~/dupes.txt