/ 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
script, der omdanner filnavne fra upper ti~
Fra : Frederik Dannemare


Dato : 29-11-00 14:33

Jeg har i tidernes morgen set et lille script i denne NG, som
omdanner filnavne fra upper case til lower case.

Er der nogen, som ligger inde med et sådan script, eller som
hurtigt lige kan brygge et sammen?

På forhånd tak.
--
Frederik Dannemare, Linux-World Danmark, www.linux-world.dk


 
 
Jakob Hilarius (29-11-2000)
Kommentar
Fra : Jakob Hilarius


Dato : 29-11-00 15:00

Frederik Dannemare <frederik@dannemare.dk> writes:

> Jeg har i tidernes morgen set et lille script i denne NG, som
> omdanner filnavne fra upper case til lower case.
>
> Er der nogen, som ligger inde med et sådan script, eller som
> hurtigt lige kan brygge et sammen?
>

I bash burde du kunne goere:

for i in *
do
x = `echo $i | tr '[A-Z]' '[a-z]'`
if [ $i != $x ]
then
mv $i $x
fi
done


> På forhånd tak.
> --
> Frederik Dannemare, Linux-World Danmark, www.linux-world.dk
>

--
Jakob Hilarius
http://rrk.kollegienet.dk/~jhsn

Klaus Alexander Seis~ (29-11-2000)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 29-11-00 15:18

Jakob H skrev:

> x = `echo $i | tr '[A-Z]' '[a-z]'`

Der må ikke være luft omkring '=', og jeg ville nok også foretrække at
bruge '[:upper:]' og '[:lower:]' fremfor '[A-Z]' og '[a-z]', altså:

x=$(echo $i | tr '[:upper:]' '[:lower:]')


// Klaus

--
><>°

Morten *S. Nielsen (03-12-2000)
Kommentar
Fra : Morten *S. Nielsen


Dato : 03-12-00 15:51

Frederik Dannemare wrote:

> Jeg har i tidernes morgen set et lille script i denne NG, som
> omdanner filnavne fra upper case til lower case.
>
> Er der nogen, som ligger inde med et sådan script, eller som
> hurtigt lige kan brygge et sammen?

>

På trods af de eller nydelige løsninger vil jeg lige sige at det altså
langt fra er nødvendigt med et script:

ls -1 | perl -ne 'chomp;qx(mv \"$_\" \L\"$_\")'

ls -1 genererer en liste af fil/dir navne, der renames af perl via mv.
"\L" betyder skift til alle uppercase til lowercase. Brug "\U" for skift
til uppercase. Virker iøvrigt osse for filnavne med mellemrum og "lidt"
sære karakterer. Meget
sære karakterer så som "&?[]" er dog stadig besværlige og kræver at man
bruger perl's interne rename funktion.

Pseudo rekursiv:
ls -1 | perl -ne 'chomp;qx(mv \"$_\" \L\"$_\")' && \
ls -1 * | perl -ne 'chomp;qx(mv \"$_\" \L\"$_\")' && \
ls -1 */* | perl -ne 'chomp;qx(mv \"$_\" \L\"$_\")' && \
ls -1 */*/* | perl -ne 'chomp;qx(mv \"$_\" \L\"$_\")'
....etc.

Morten S. Nielsen

-- Measure with a micrometer. Mark with chalk. Cut with an axe.




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

Månedens bedste
Årets bedste
Sidste års bedste