Jeg forsøger at ryde lidt op i en række filer, hvis filnavne er gået lettere i smadder.
Det drejer sig om filer, der vist nok stammer fra en gammel Windows-installation (98/XP), som på et tidspunkt er blevet flyttet til en EXT2-partition. Jeg formoder, det er her, det er gået galt.
Et udklip af ls giver:
Kode: Vælg alt
./PETERSEN FR’SNING, B_'GEV’NGET 1 , 20 10 02.xls
./BJERREG?RD ,SKOVB’KVEJ 1, 01 02 00.doc
./test’?_'
og jeg søger at lave et script, der omdøber dem til:
Kode: Vælg alt
./PETERSEN, FRÆSNING, BØGEVÆNGET 1 , 20 10 02.xls
./BJERREGÅRD ,SKOVBÆKVEJ 1, 01 02 00.doc
./testÆÅØ
Jeg har kastet dette shell script sammen:
Kode: Vælg alt
#!/bin/bash
STI=.
AE=’
OE=_\'
AA=
find "$STI" -iname "*[$OE$AE$AA]*" -print
Bemærk: AA=Unicode-karakteren U+8F, og at ls skriver selvsamme som ?
Scriptet finder de ramte filer (dem med tegnene for AE, OE, AA). Så langt, så godt.
Nu skal jeg så forsøge at få det til at omdøbe dem.
Der har jeg kigget på pakken conmv.
Kode: Vælg alt
$ convmv --nosmart -f cp850 -t utf8 test’_\'
Your Perl version has fleas #37757 #49830
Starting a dry run without changes...
mv "./test’_'" "./testÔÇÖ┬Å_'"
No changes to your files done. Use --notest to finally rename the files.
Jeg har prøvet med nogle forskellige from (-f) encodings, men ingen af dem, ser ud til at virke. Er der nogen, der kan hjælpe mig med at finde ud af, hvordan jeg får mine filer givet deres rigtige navn? Hvilken encoding brugte man typisk på en dansk Windows-version den gang, hvis ikke det var cp850/cp858