|
| Erstat '?' i en lang række filnavne Fra : Peter Andersen |
Dato : 25-01-04 17:55 |
|
Jeg har haft en Samba installation der åbenbart har drillet mig engang, så
jeg har en masse æøå'er der er blevet erstattet af et '?' i filnavnet.
Hvordan laver jeg et lille script der kan ændre det tegn til noget andet?
(ligemget hvad, bare samba kan læse det)
--
M.v.h. Peter Andersen.
| |
Peter Mogensen (25-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 25-01-04 18:41 |
|
Peter Andersen wrote:
> Jeg har haft en Samba installation der åbenbart har drillet mig engang, så
> jeg har en masse æøå'er der er blevet erstattet af et '?' i filnavnet.
>
> Hvordan laver jeg et lille script der kan ændre det tegn til noget andet?
> (ligemget hvad, bare samba kan læse det)
utestet forslag der gerne skulle skifte ? ud med X:
for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e 's/\?/X/'`;
done
| |
Peter Andersen (25-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 25-01-04 21:39 |
|
Peter Mogensen wrote:
> Peter Andersen wrote:
>> Jeg har haft en Samba installation der åbenbart har drillet mig
>> engang, så jeg har en masse æøå'er der er blevet erstattet af et '?'
>> i filnavnet.
>>
>> Hvordan laver jeg et lille script der kan ændre det tegn til noget
>> andet? (ligemget hvad, bare samba kan læse det)
>
> utestet forslag der gerne skulle skifte ? ud med X:
>
> for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e
> 's/\?/X/'`; done
Hejsa
Nææ, den virker ik... her er hvad den laver af brok:
[root@gniske smb-share]# ./qq
sed: -e expression #1, char 5: Unterminated `s' command
mv: cannot stat `December': No such file or directory
sed: -e expression #1, char 5: Unterminated `s' command
mv: missing file argument
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: missing file argument
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: missing file argument
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: cannot stat `Gamle': No such file or directory
sed: -e expression #1, char 5: Unterminated `s' command
mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: missing file argument
Try `mv --help' for more information.
sed: -e expression #1, char 5: Unterminated `s' command
mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
--
M.v.h. Peter Andersen.
| |
Peter Mogensen (25-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 25-01-04 21:58 |
|
Peter Andersen wrote:
> Peter Mogensen wrote:
>>utestet forslag der gerne skulle skifte ? ud med X:
>>
>>for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e
>>'s/\?/X/'`; done
>
>
> Hejsa
>
> Nææ, den virker ik... her er hvad den laver af brok:
Gætter på du har ladet det linieskift du har citeret ovenfor snige sig
ind i dit script. Der skal ikke være noget linieskift i det jeg skrev.
Peter
| |
Peter Andersen (25-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 25-01-04 22:20 |
|
Peter Mogensen wrote:
> Peter Andersen wrote:
>> Peter Mogensen wrote:
>>> utestet forslag der gerne skulle skifte ? ud med X:
>>>
>>> for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e
>>> 's/\?/X/'`; done
>>
>>
>> Hejsa
>>
>> Nææ, den virker ik... her er hvad den laver af brok:
>
> Gætter på du har ladet det linieskift du har citeret ovenfor snige sig
> ind i dit script. Der skal ikke være noget linieskift i det jeg skrev.
>
> Peter
Hej, næ det har jeg nu ikke... det hele står i en linie med ;
--
M.v.h. Peter Andersen.
| |
Peter Mogensen (26-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 26-01-04 07:34 |
|
Peter Andersen wrote:
> Hej, næ det har jeg nu ikke... det hele står i en linie med ;
Så ved jeg ikke hvad du har gjort, for det virker skam fint her.
Peter
| |
Peter Andersen (26-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 26-01-04 09:05 |
|
Peter Mogensen wrote:
> Peter Andersen wrote:
>
>> Hej, næ det har jeg nu ikke... det hele står i en linie med ;
>
> Så ved jeg ikke hvad du har gjort, for det virker skam fint her.
>
> Peter
Det fatter jeg godt nok ikke så.... har prøvet der både i en linie og har
haft det brugt op.. samme resultat..
--
M.v.h. Peter Andersen.
| |
Leo Laursen (25-01-2004)
| Kommentar Fra : Leo Laursen |
Dato : 25-01-04 22:21 |
|
Peter Andersen <peterandersen@mespilus.dk>:
> Peter Mogensen wrote:
>> Peter Andersen wrote:
>>> Jeg har haft en Samba installation der åbenbart har drillet mig
>>> engang, så jeg har en masse æøå'er der er blevet erstattet af et '?'
>>> i filnavnet.
>> utestet forslag der gerne skulle skifte ? ud med X:
>> for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e
>> 's/\?/X/'`; done
> Nææ, den virker ik... her er hvad den laver af brok:
> [root@gniske smb-share]# ./qq
> sed: -e expression #1, char 5: Unterminated `s' command
> mv: cannot stat `December': No such file or directory
> mv: when moving multiple files, last argument must be a directory
> Try `mv --help' for more information.
Det kunne være at "?" er fordi det er i et andet tegnsæt. Du kunne prøve
at se det i en unicode xterm.
Hvis det er et "?" så prøv:
#v+
cd smb-share
for f in *\?*; do mv $f ${f//\\\?/X}; done
#v-
Leo
--
The cow is nothing but a machine which makes grass fit for us people to eat.
-- John McNulty
| |
Peter Andersen (25-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 25-01-04 22:57 |
|
Leo Laursen wrote:
> Peter Andersen <peterandersen@mespilus.dk>:
>> Peter Mogensen wrote:
>>> Peter Andersen wrote:
>>>> Jeg har haft en Samba installation der åbenbart har drillet mig
>>>> engang, så jeg har en masse æøå'er der er blevet erstattet af et
>>>> '?' i filnavnet.
>
>>> utestet forslag der gerne skulle skifte ? ud med X:
>
>>> for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e
>>> 's/\?/X/'`; done
>
>> Nææ, den virker ik... her er hvad den laver af brok:
>
>> [root@gniske smb-share]# ./qq
>> sed: -e expression #1, char 5: Unterminated `s' command
>> mv: cannot stat `December': No such file or directory
>> mv: when moving multiple files, last argument must be a directory
>> Try `mv --help' for more information.
>
> Det kunne være at "?" er fordi det er i et andet tegnsæt. Du kunne
> prøve at se det i en unicode xterm.
>
> Hvis det er et "?" så prøv:
> #v+
> cd smb-share
> for f in *\?*; do mv $f ${f//\\\?/X}; done
> #v-
>
> Leo
Næ, den brokker sig over.. og jeg ser det skam i en unicode term.
Årsagen til hele problemer er at jeg skiftede fra RH9 til Fedora og
installerede samba 3.01 på den.... nye filer med æøå fungerer fint, men ikke
de gamle der lå der...
--
M.v.h. Peter Andersen.
| |
Leo Laursen (26-01-2004)
| Kommentar Fra : Leo Laursen |
Dato : 26-01-04 20:20 |
|
Peter Andersen <peterandersen@mespilus.dk>:
> Leo Laursen wrote:
>> Det kunne være at "?" er fordi det er i et andet tegnsæt. Du kunne
>> prøve at se det i en unicode xterm.
> Næ, den brokker sig over.. og jeg ser det skam i en unicode term.
> Årsagen til hele problemer er at jeg skiftede fra RH9 til Fedora og
> installerede samba 3.01 på den.... nye filer med æøå fungerer fint, men ikke
> de gamle der lå der...
RH9 kører da vist med UTF-8 tegnsæt som standard, gør Fedora ikke også
det? Hvad siger "echo $LANG" ?
Hvormange filer drejer det sig om. Du kan jo altid løbe dem igennem
manuelt og omdøbe dem. Brug enten tab-completion eller wildcards til at
specificere de ødelagte navne.
En mere elegant løsning er at pipe filnavnet igennem iconv; men det
kræver lige at du er helt sikker på hvilket tegnsæt de forkerte har, og
hvilket de skal have til slut.
Leo
--
Over the shoulder supervision is more a need of the manager than the
programming task.
| |
Peter Andersen (26-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 26-01-04 23:09 |
|
Leo Laursen wrote:
> Peter Andersen <peterandersen@mespilus.dk>:
>> Leo Laursen wrote:
>>> Det kunne være at "?" er fordi det er i et andet tegnsæt. Du kunne
>>> prøve at se det i en unicode xterm.
>
>> Næ, den brokker sig over.. og jeg ser det skam i en unicode term.
>
>> Årsagen til hele problemer er at jeg skiftede fra RH9 til Fedora og
>> installerede samba 3.01 på den.... nye filer med æøå fungerer fint,
>> men ikke de gamle der lå der...
>
> RH9 kører da vist med UTF-8 tegnsæt som standard, gør Fedora ikke også
> det? Hvad siger "echo $LANG" ?
> Hvormange filer drejer det sig om. Du kan jo altid løbe dem igennem
> manuelt og omdøbe dem. Brug enten tab-completion eller wildcards til
> at specificere de ødelagte navne.
>
> En mere elegant løsning er at pipe filnavnet igennem iconv; men det
> kræver lige at du er helt sikker på hvilket tegnsæt de forkerte har,
> og hvilket de skal have til slut.
Jo tegnsættet i Fedora er UTF-8 og jeg det viser $LANG variablen også.
Da jeg kørte Redhat 9 havde jeg bare et ? der hvor æøå skulle være - de
filer var vist fra en samba på en RedHat 7.3.. kan jeg ikke huske hvordan
det hænger sammen efterhånden.
--
M.v.h. Peter Andersen.
| |
Peter Mogensen (27-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 27-01-04 08:56 |
|
Peter Andersen wrote:
> Da jeg kørte Redhat 9 havde jeg bare et ? der hvor æøå skulle være - de
> filer var vist fra en samba på en RedHat 7.3.. kan jeg ikke huske hvordan
> det hænger sammen efterhånden.
Så er det jo nok derfor at det script jeg foreslog ikke virker. Der er
slet ikke nogen '?' - andet end rent visuelt når de vises.
Du har måske et display i UTF-8, der forsøger at vise latin-1 tegn.
UTF-8 bruger (mindst) 2 byte til at vise alle ikke ASCII-tegn. Latin-1
bruger kun 1.
Så derfor bliver den forvirret, når den ser et æøå og viser istedet et ?
Peter
| |
Peter Andersen (27-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 27-01-04 09:14 |
|
Peter Mogensen wrote:
> Peter Andersen wrote:
>> Da jeg kørte Redhat 9 havde jeg bare et ? der hvor æøå skulle være -
>> de filer var vist fra en samba på en RedHat 7.3.. kan jeg ikke huske
>> hvordan det hænger sammen efterhånden.
>
> Så er det jo nok derfor at det script jeg foreslog ikke virker. Der er
> slet ikke nogen '?' - andet end rent visuelt når de vises.
> Du har måske et display i UTF-8, der forsøger at vise latin-1 tegn.
> UTF-8 bruger (mindst) 2 byte til at vise alle ikke ASCII-tegn. Latin-1
> bruger kun 1.
> Så derfor bliver den forvirret, når den ser et æøå og viser istedet
> et ?
Ok. Hvad kunne løsningen være på problemet?
--
M.v.h. Peter Andersen.
| |
Peter Mogensen (27-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 27-01-04 09:38 |
|
Peter Andersen wrote:
> Ok. Hvad kunne løsningen være på problemet?
.... at kigge på dit filsystem lokalt på den maskine det ligger på og
finde ud af _hvilke_ tegn, der rent faktisk er i de fil-navne.
Derefter sikre sig at den software, der er involveret i at håndtere dem
faktisk også forstår de tegnsæt, der er anvendes.
Jeg ved for lidt om dit system til at kunne give nogen konkret opskift.
Peter
| |
Peter Andersen (27-01-2004)
| Kommentar Fra : Peter Andersen |
Dato : 27-01-04 09:47 |
|
Peter Mogensen wrote:
> Peter Andersen wrote:
>> Ok. Hvad kunne løsningen være på problemet?
>
> ... at kigge på dit filsystem lokalt på den maskine det ligger på og
> finde ud af _hvilke_ tegn, der rent faktisk er i de fil-navne.
> Derefter sikre sig at den software, der er involveret i at håndtere
> dem faktisk også forstår de tegnsæt, der er anvendes.
>
> Jeg ved for lidt om dit system til at kunne give nogen konkret
> opskift.
>
> Peter
Ok, tak for det. Det er vel et spørgsmål om at bruge samme script og
udskifte det reelle tegn med et andet. Jeg prøver.
--
M.v.h. Peter Andersen.
| |
Jekka (27-01-2004)
| Kommentar Fra : Jekka |
Dato : 27-01-04 10:51 |
|
> utestet forslag der gerne skulle skifte ? ud med X:
>
> for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e 's/\?/X/'`;
> done
Virker her hos mig, men den skifter kun ét ? ud. Hvad hvis der er flere ? i
samme filnavn; f.eks. "dette.???.er.en.??.?.tst" =
"dette.XXX.er.en.XX.X.tst"?
| |
Peter Mogensen (27-01-2004)
| Kommentar Fra : Peter Mogensen |
Dato : 27-01-04 10:53 |
|
Jekka wrote:
>>utestet forslag der gerne skulle skifte ? ud med X:
>>
>>for F in /sti/til/dumme/filer/* ; do mv $F `echo $F | sed -e 's/\?/X/'`;
>>done
>
>
> Virker her hos mig, men den skifter kun ét ? ud. Hvad hvis der er flere ? i
> samme filnavn; f.eks. "dette.???.er.en.??.?.tst" =
> "dette.XXX.er.en.XX.X.tst"?
Åh ja..
skriv istedet
sed -e 's/\?/X/g'
^
| |
Jekka (27-01-2004)
| Kommentar Fra : Jekka |
Dato : 27-01-04 11:16 |
|
> > Virker her hos mig, men den skifter kun ét ? ud. Hvad hvis der er flere
? i
> > samme filnavn; f.eks. "dette.???.er.en.??.?.tst" =
> > "dette.XXX.er.en.XX.X.tst"?
>
> Åh ja..
> skriv istedet
> sed -e 's/\?/X/g'
Mange tak - det var jo nemt
| |
Niels Elgaard Larsen (26-01-2004)
| Kommentar Fra : Niels Elgaard Larsen |
Dato : 26-01-04 01:14 |
|
Peter Andersen wrote:
> Jeg har haft en Samba installation der åbenbart har drillet mig engang, så
> jeg har en masse æøå'er der er blevet erstattet af et '?' i filnavnet.
>
> Hvordan laver jeg et lille script der kan ændre det tegn til noget andet?
> (ligemget hvad, bare samba kan læse det)
Det behøver du ikke et script til. mmv kan gøre det. Hvis du ikke har mmv så
installer den.
mmv "*\?*" "#1x#2"
Ændrer kun et ? hvert filnavn, men så kan du køre det flere gange.
--
Niels Elgaard Larsen
http://www.agol.dk/elgaard
| |
Jes Vestervang (26-01-2004)
| Kommentar Fra : Jes Vestervang |
Dato : 26-01-04 01:15 |
|
Peter Andersen wrote:
> Jeg har haft en Samba installation der åbenbart har drillet mig engang, så
> jeg har en masse æøå'er der er blevet erstattet af et '?' i filnavnet.
>
> Hvordan laver jeg et lille script der kan ændre det tegn til noget andet?
> (ligemget hvad, bare samba kan læse det)
Måske rename kan hjælpe dig, den følger med perl-pakken i Debian.
--
mvh Jes Vestervang
| |
|
|