/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste