/ 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
Omdøbe filer
Fra : Sonni Skammelsen


Dato : 18-06-04 10:08

Jeg husker svagt spørgsmålet har været oppe før, men kan ikke finde
det i google.

Jeg har en stribe billedfiler som indeholder blanke og danske tegn, alle
disse starter med et 6 cifret nummer.

Jeg vil så have omdøbt alle filer så de kun hedder det 6 cifret nummer
og beholder deres extension.

eks. '123456 pærer.jpg' bliver til '123456.jpg'

Hvordan er det så lige jeg gør det hurtigst med et script.

/Sonni

 
 
Peter Jensen (18-06-2004)
Kommentar
Fra : Peter Jensen


Dato : 18-06-04 11:02

Sonni Skammelsen wrote:

> Jeg husker svagt spørgsmålet har været oppe før, men kan ikke finde
> det i google.
>
> Jeg har en stribe billedfiler som indeholder blanke og danske tegn,
> alle disse starter med et 6 cifret nummer.
>
> Jeg vil så have omdøbt alle filer så de kun hedder det 6 cifret nummer
> og beholder deres extension.
>
> eks. '123456 pærer.jpg' bliver til '123456.jpg'
>
> Hvordan er det så lige jeg gør det hurtigst med et script.

Hvis det altid er "pærer" der står, så kan du bruge:

$ rename ' pærer' '' ??????\ pærer.jpg

Ellers er der en mere generel formel for slettelse af alt efter det
første mellemrum:

$ for i in ??????\ *.jpg;do mv -i "${i}" "${i/% *.jpg/.jpg}";done

Den første metode kan vist komme til at overskrive eksisterende filer.
Den anden metode advarer dig inden dette sker.

--
PeKaJe

mixed emotions: Watching a bus-load of lawyers plunge off a cliff.
      With five empty seats.

Sonni Skammelsen (18-06-2004)
Kommentar
Fra : Sonni Skammelsen


Dato : 18-06-04 11:37

On Fri, 18 Jun 2004 10:01:57 +0000, Peter Jensen wrote:

> Sonni Skammelsen wrote:
>
>> Jeg husker svagt spørgsmålet har været oppe før, men kan ikke finde
>> det i google.
>>
>> Jeg har en stribe billedfiler som indeholder blanke og danske tegn,
>> alle disse starter med et 6 cifret nummer.
>>
>> Jeg vil så have omdøbt alle filer så de kun hedder det 6 cifret nummer
>> og beholder deres extension.
>>
>> eks. '123456 pærer.jpg' bliver til '123456.jpg'
>>
>> Hvordan er det så lige jeg gør det hurtigst med et script.
>
> Hvis det altid er "pærer" der står, så kan du bruge:
>
> $ rename ' pærer' '' ??????\ pærer.jpg
>
> Ellers er der en mere generel formel for slettelse af alt efter det
> første mellemrum:
>
> $ for i in ??????\ *.jpg;do mv -i "${i}" "${i/% *.jpg/.jpg}";done
>
> Den første metode kan vist komme til at overskrive eksisterende filer.
> Den anden metode advarer dig inden dette sker.

Takker, det var jo lige sådan det var :)

/Sonni

Kim Hansen (20-06-2004)
Kommentar
Fra : Kim Hansen


Dato : 20-06-04 09:30

Peter Jensen <usenet@pekajemaps.homeip.net> writes:

> Sonni Skammelsen wrote:
>
> > Jeg husker svagt spørgsmålet har været oppe før, men kan ikke finde
> > det i google.
> >
> > Jeg har en stribe billedfiler som indeholder blanke og danske tegn,
> > alle disse starter med et 6 cifret nummer.
> >
> > Jeg vil så have omdøbt alle filer så de kun hedder det 6 cifret nummer
> > og beholder deres extension.
> >
> > eks. '123456 pærer.jpg' bliver til '123456.jpg'
> >
> > Hvordan er det så lige jeg gør det hurtigst med et script.

Med rename kunne man også:
rename 's/^(\d{6}).+(\..+)/$1$2/' *

> Hvis det altid er "pærer" der står, så kan du bruge:
>
> $ rename ' pærer' '' ??????\ pærer.jpg

Jeg går ud fra at rename(1) er den der følger med perl, og så er
syntax lidt anderledes:

rename 's/ pærer//' ??????\ pærer.jpg

> Ellers er der en mere generel formel for slettelse af alt efter det
> første mellemrum:
>
> $ for i in ??????\ *.jpg;do mv -i "${i}" "${i/% *.jpg/.jpg}";done
>
> Den første metode kan vist komme til at overskrive eksisterende filer.
> Den anden metode advarer dig inden dette sker.

rename overskriver ikke filer, den kommer med en advarsel i stil med:
123456 pærer.jpg not renamed: 123456.jpg already exists

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Peter Jensen (26-06-2004)
Kommentar
Fra : Peter Jensen


Dato : 26-06-04 11:15

Kim Hansen wrote:

> Med rename kunne man også:
> rename 's/^(\d{6}).+(\..+)/$1$2/' *

$ touch '123456 pærer.jpg'
$ rename 's/^(\d{6}).+(\..+)/$1$2/' *
$ ls
123456 pærer.jpg

Næh ...

>> Hvis det altid er "pærer" der står, så kan du bruge:
>>
>> $ rename ' pærer' '' ??????\ pærer.jpg
>
> Jeg går ud fra at rename(1) er den der følger med perl,

$ qpkg -f `which rename`
sys-apps/util-linux *

Det er det ikke. Hvorfor går du ud fra at det var den?

> og så er syntax lidt anderledes:
>
> rename 's/ pærer//' ??????\ pærer.jpg

$ touch '123456 pærer.jpg'
$ rename 's/ pærer//' ??????\ pærer.jpg
$ ls
123456 pærer.jpg

Nope.

>> Ellers er der en mere generel formel for slettelse af alt efter det
>> første mellemrum:
>>
>> $ for i in ??????\ *.jpg;do mv -i "${i}" "${i/% *.jpg/.jpg}";done
>>
>> Den første metode kan vist komme til at overskrive eksisterende
>> filer. Den anden metode advarer dig inden dette sker.
>
> rename overskriver ikke filer, den kommer med en advarsel i stil med:
> 123456 pærer.jpg not renamed: 123456.jpg already exists

$ echo 1 >'123456 pærer.jpg'
$ echo 2 >'123456.jpg'
$ rename ' pærer' '' ??????\ pærer.jpg
$ ls
123456.jpg
$ cat 123456.jpg
1

Ikke min rename. Du siger du bruger perl's rename, men den har jeg godt
nok aldrig set brugt nogle steder før, og jeg kan ikke engang finde den
på mit system. Spørgsmålet er så hvilken rename OP har på sit system.

--
PeKaJe

Brain fried -- Core dumped

Kim Hansen (26-06-2004)
Kommentar
Fra : Kim Hansen


Dato : 26-06-04 11:31

Peter Jensen <usenet@pekajemaps.homeip.net> writes:

> Kim Hansen wrote:
>
> > Jeg går ud fra at rename(1) er den der følger med perl,
>
> $ qpkg -f `which rename`
> sys-apps/util-linux *
>
> Det er det ikke. Hvorfor går du ud fra at det var den?

Fordi det var den eneste jeg kendte, men jeg blev i tvivl om der
fandtes flere da jeg så at du brugte en syntax der ikke passede med
den version jeg kendte.

> > og så er syntax lidt anderledes:
> >
> > rename 's/ pærer//' ??????\ pærer.jpg
>
> $ touch '123456 pærer.jpg'
> $ rename 's/ pærer//' ??????\ pærer.jpg
> $ ls
> 123456 pærer.jpg
>
> Nope.

Jo den er, jeg har netop specificeret af jeg taler om perls
rename. Alle dine eksempler på at rename fra util-linux bruger en
anden syntax er spild af tid.

> Ikke min rename. Du siger du bruger perl's rename, men den har jeg godt
> nok aldrig set brugt nogle steder før, og jeg kan ikke engang finde den
> på mit system. Spørgsmålet er så hvilken rename OP har på sit system.

Hvilken rename findes der på de forskellige distributioner?
På Debian får man perls.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Peter Jensen (26-06-2004)
Kommentar
Fra : Peter Jensen


Dato : 26-06-04 12:28

Kim Hansen wrote:

>> Ikke min rename. Du siger du bruger perl's rename, men den har jeg
>> godt nok aldrig set brugt nogle steder før, og jeg kan ikke engang
>> finde den på mit system. Spørgsmålet er så hvilken rename OP har på
>> sit system.
>
> Hvilken rename findes der på de forskellige distributioner? På Debian
> får man perls.

På Gentoo og Red Hat (dengang jeg brugte Red Hat) får man util-linux
versionen. Så vidt jeg umiddelbart kunne se, så kommer Debian og
Knoppix også med util-linux versionen. Hvilken pakke hører din perl
version til? Jeg kan ikke finde den nogen steder. Er du sikker på at
det ikke er en version du selv har installeret senere?

--
PeKaJe

Jenkinson's Law:
   It won't work.

Peter Makholm (26-06-2004)
Kommentar
Fra : Peter Makholm


Dato : 26-06-04 14:22

Peter Jensen <usenet@pekajemaps.homeip.net> writes:

> På Gentoo og Red Hat (dengang jeg brugte Red Hat) får man util-linux
> versionen. Så vidt jeg umiddelbart kunne se, så kommer Debian og
> Knoppix også med util-linux versionen.

Debians /usr/bin/rename har alle dage kommet fra perl.

brother@localhost:/usr/local/home/brother$ dpkg -S /usr/bin/rename
perl: /usr/bin/rename
brother@localhost:/usr/local/home/brother$

Og det bliver den forhåbentlig ved med. Den er langt stærkere end
manualsiden for rename i util-linux giver udtryk for (ikke at jeg tror
at dokumentationen er speciel dækkende, det ser den ikke ud til).

Det eneste probleme er at det nogle gange kan være lidt besværligt at
perludtrykket fortolkes i 'use strict'-omgivelser. Det hjælper dog
lidt når man ved at $a og $b ikke skal erklæres før brug.

--
Peter Makholm | I have no caps-lock but I must scream...
peter@makholm.net | -- Greg
http://hacking.dk |

Kim Hansen (27-06-2004)
Kommentar
Fra : Kim Hansen


Dato : 27-06-04 04:04

Peter Jensen <usenet@pekajemaps.homeip.net> writes:

> Kim Hansen wrote:
>
> > Hvilken rename findes der på de forskellige distributioner? På Debian
> > får man perls.
>
> På Gentoo og Red Hat (dengang jeg brugte Red Hat) får man util-linux
> versionen. Så vidt jeg umiddelbart kunne se, så kommer Debian og
> Knoppix også med util-linux versionen. Hvilken pakke hører din perl
> version til? Jeg kan ikke finde den nogen steder. Er du sikker på at
> det ikke er en version du selv har installeret senere?

Som Peter Makholm skriver så er Debians (og dermed også Knoppix's)
rename fra perl, hvordan kom du frem til at den var fra util-linux?

kim@chips$ dlocate rename
....
perl: /usr/bin/rename
perl: /usr/lib/perl/5.8.4/auto/POSIX/rename.al
perl: /usr/share/man/man1/rename.1.gz
....
[util-linux ikke nævnt]
kim@chips$ dpkg -L util-linux | grep rename
kim@chips$

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Peter Jensen (27-06-2004)
Kommentar
Fra : Peter Jensen


Dato : 27-06-04 17:37

Kim Hansen wrote:

>> På Gentoo og Red Hat (dengang jeg brugte Red Hat) får man util-linux
>> versionen. Så vidt jeg umiddelbart kunne se, så kommer Debian og
>> Knoppix også med util-linux versionen. Hvilken pakke hører din perl
>> version til? Jeg kan ikke finde den nogen steder. Er du sikker på
>> at det ikke er en version du selv har installeret senere?
>
> Som Peter Makholm skriver så er Debians (og dermed også Knoppix's)
> rename fra perl,

Korrekt.

> hvordan kom du frem til at den var fra util-linux?

Jeg havde lige givet min sidste Knoppix CD væk, og jeg havde ikke fået
downloadet den nyeste endnu. I stedet for rent faktisk at undersøge det
direkte, læste jeg derfor en liste over installerede pakker på Knoppix.
Da jeg så util-linux i listen antog jeg (forkert) at den måtte have
samme indhold som min util-linux. Jeg har nu lige fået downloadet
Knoppix igen, og den har selvfølgeligt perl versionen. Doh!

Jeg har dog stadig ikke set den version uden for Debian og dens afledte.

--
PeKaJe

Do something unusual today. Pay a bill.

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

Månedens bedste
Årets bedste
Sidste års bedste