Hej,
Jag har en del gamla filer i mitt arkiv som skapats under diverse WIndows-OS. De har då fått en konstig kodning av å,ä och ö i filnamne.
Exempel: filen som borde heta "nästa nummer" har unixfilnamnet "n\#204sta nummer"
("#\204" verkar vara ett tecken.)
Denna kodning upprör en hel del program, till exempel rsync.
1. Hur kan jag döpa om dessa filer med något kommando som använder ett listigt reguljärt uttryck så att det kan täcka både å, ä och ö?
2. Hur ser en find+exec ut som traverserar filträdet och döper om enligt ovan?
Om 2 är för mycket begärt så duger 1 fint, det är inte så förfärligt många.
Tack för all hjälp!
Per
Byta filnamn med konstiga åäö
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Byta filnamn med konstiga åäö
Kod: Markera allt
#!/bin/bash
find . -print0 |
while read -d '' i
do if j=$(echo "$i" | iconv -f cp437 -t utf8 2>&-)
then test "x$i" = "x$j" || test -e "$j" || mv -- "$i" "$j"
fi
done
Re: Byta filnamn med konstiga åäö
Hm.
Ett annat problem - jag har installerat Ubuntu via wubi så att det ligger parallellt med Vista som en virtuell partition (hoppas jag fått termerna rätt här).
Kataloger med åäö på Windowsdisken kommer jag inte åt alls från Ubuntu, utan jag har varit tvungen att byta namn i Windows Vista.
Finns det något enklare sätt att komma åt katalogerna och filerna i dem?
Ett annat problem - jag har installerat Ubuntu via wubi så att det ligger parallellt med Vista som en virtuell partition (hoppas jag fått termerna rätt här).
Kataloger med åäö på Windowsdisken kommer jag inte åt alls från Ubuntu, utan jag har varit tvungen att byta namn i Windows Vista.
Finns det något enklare sätt att komma åt katalogerna och filerna i dem?
-
- Inlägg: 48
- Blev medlem: 18 nov 2006, 19:47
Re: Byta filnamn med konstiga åäö
Tack, Konservburk!
iconv(1) var pusselbiten jag inte kände till. Tack också för skissen på skriptet, det bör fungera som det står, men jag ska skriva in det och pröva. En liten detalj: är det uppenbart att det är cp437-kodningen som visar sig i mitt fall? Känner du igen koden som jag gav i exemplet?
Nåja, jag ska pröva så fort jag får tillfälle.
Förresten, varför vägrar flera program att öppna en fil med cp437-kodade filnamn?
Tack igen!
Per.
iconv(1) var pusselbiten jag inte kände till. Tack också för skissen på skriptet, det bör fungera som det står, men jag ska skriva in det och pröva. En liten detalj: är det uppenbart att det är cp437-kodningen som visar sig i mitt fall? Känner du igen koden som jag gav i exemplet?
Nåja, jag ska pröva så fort jag får tillfälle.
Förresten, varför vägrar flera program att öppna en fil med cp437-kodade filnamn?
Tack igen!
Per.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Byta filnamn med konstiga åäö
Jag vet av erfarenhet att om svenska tecken återges som \204 \206 \216 \217 \224 \231 så är det cp437 där det borde vara iso8859-1/utf8 istället.perstromgren skrev:är det uppenbart att det är cp437-kodningen som visar sig i mitt fall? Känner du igen koden som jag gav i exemplet?
Antagligen för att det helt saknas utskrivbara tecken mellan \200 och \240 i iso8859-1/utf8.perstromgren skrev:Förresten, varför vägrar flera program att öppna en fil med cp437-kodade filnamn?