|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Rename-script Fra : Jesper Poulsen |
Dato : 15-01-08 17:34 |
|
Greetings!
Er her en venlig sjæl der kan hjælpe mig med et lidt specielt rename-script?
Jeg har en stak filer af typen filename.ext.x og de skal renames til
filename.x.ext - hvordan gør man lettest det?
--
Mvh
Jesper Poulsen
| |
Allan Willems Joerge~ (15-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Allan Willems Joerge~ |
Dato : 15-01-08 17:51 |
|
Jesper Poulsen <nospam@ingensteder.dk> wrote:
> Er her en venlig sjæl der kan hjælpe mig med et lidt specielt rename-script?
> Jeg har en stak filer af typen filename.ext.x og de skal renames til
> filename.x.ext - hvordan gør man lettest det?
Hvis du har en Debian-baseret distribution kan du kigge på rename(1)
--
Med venlig hilsen / Best regards
Allan Willems Joergensen
"Existance is not only temporary, its pointless." Calvin
| |
Jesper Poulsen (15-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 15-01-08 19:07 |
|
Allan Willems Joergensen wrote:
> Hvis du har en Debian-baseret distribution kan du kigge på rename(1)
Det synes jeg nu ikke at jeg blev meget klogere af.
--
Mvh
Jesper Poulsen
| |
![](/images/tree/0.gif) Allan Willems Joerge~ (16-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Allan Willems Joerge~ |
Dato : 16-01-08 07:24 |
|
Jesper Poulsen <nospam@ingensteder.dk> wrote:
>> Hvis du har en Debian-baseret distribution kan du kigge på rename(1)
> Det synes jeg nu ikke at jeg blev meget klogere af.
Så må du jo forsøge at levere informationer der gør det muligt at
hjælpe.
--
Med venlig hilsen / Best regards
Allan Willems Joergensen
"Existance is not only temporary, its pointless." Calvin
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) Jesper Poulsen (16-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 16-01-08 11:14 |
|
Allan Willems Joergensen wrote:
> Så må du jo forsøge at levere informationer der gør det muligt at
> hjælpe.
Søren og Kent har været ganske hjælpsomme i deres måde at svare på - jeg
fandt dog en anden løsning inden.
--
Mvh
Jesper Poulsen
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) Allan Willems Joerge~ (16-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Allan Willems Joerge~ |
Dato : 16-01-08 12:45 |
|
Jesper Poulsen <nospam@ingensteder.dk> wrote:
>> Så må du jo forsøge at levere informationer der gør det muligt at
>> hjælpe.
> Søren og Kent har været ganske hjælpsomme i deres måde at svare på - jeg
> fandt dog en anden løsning inden.
Finder du deres svar mere brugbare fordi de gav dig en komplet løsning?
--
Med venlig hilsen / Best regards
Allan Willems Joergensen
"Existance is not only temporary, its pointless." Calvin
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) Jesper Poulsen (16-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 16-01-08 20:58 |
|
Allan Willems Joergensen wrote:
> Finder du deres svar mere brugbare fordi de gav dig en komplet løsning?
Nej, jeg finder deres svar mere brugbare fordi de gav mig noget indsigt
i hvordan man kan anvende scripting.
Det var mere lærerigt.
--
Mvh
Jesper Poulsen
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) Allan Willems Joerge~ (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Allan Willems Joerge~ |
Dato : 17-01-08 12:39 |
|
Jesper Poulsen <nospam@ingensteder.dk> wrote:
>> Finder du deres svar mere brugbare fordi de gav dig en komplet løsning?
> Nej, jeg finder deres svar mere brugbare fordi de gav mig noget indsigt
> i hvordan man kan anvende scripting.
> Det var mere lærerigt.
rename(1) er et godt værktøj som sparer meget tasteri. Prøv at kigge på
det.
--
Med venlig hilsen / Best regards
Allan Willems Joergensen
"Existance is not only temporary, its pointless." Calvin
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) Jesper Poulsen (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 17-01-08 14:12 |
|
Allan Willems Joergensen wrote:
> rename(1) er et godt værktøj som sparer meget tasteri. Prøv at kigge på
> det.
Jeg _har_ kigget. Og jeg fandt det ikke særligt let tilgængeligt.
--
Mvh
Jesper Poulsen
| |
Jesper Poulsen (15-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 15-01-08 20:16 |
|
Jesper Poulsen wrote:
> Jeg har en stak filer af typen filename.ext.x og de skal renames til
> filename.x.ext - hvordan gør man lettest det?
Jeg fandt en anden løsning. Med pyRenamer slettede jeg ".ext" i
filnavnene og tilføjede derefter ".ext" i slutningen af filnavnene:
filename.ext.x -> filename.x -> filename.x.ext
--
Mvh
Jesper Poulsen
| |
Søren Dideriksen (15-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Søren Dideriksen |
Dato : 15-01-08 23:09 |
|
Jesper Poulsen <nospam@ingensteder.dk> writes:
> Greetings!
>
> Er her en venlig sjæl der kan hjælpe mig med et lidt specielt rename-script?
>
> Jeg har en stak filer af typen filename.ext.x og de skal renames til
> filename.x.ext - hvordan gør man lettest det?
da jeg ikke ved om filename, ext, eller x er konstant, er jeg nødt til
at gå ud fra det generelle tilfælde.
hvis alle filer ligger i pwd. og de renamede filer skal ligge samme sted, vil
flg oneliner virke.
$ for x in `ls -1`; do a=`echo $x | awk -F. '{print $1}'`; b=`echo $x | awk -F. '{print $2}'`; c=`echo $x | awk -F. '{print $3}'`; mv $x $a.$c.$b; done
--
Søren Dideriksen
| |
Kent Friis (15-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Kent Friis |
Dato : 15-01-08 23:12 |
|
Den Tue, 15 Jan 2008 23:08:54 +0100 skrev Søren Dideriksen:
> Jesper Poulsen <nospam@ingensteder.dk> writes:
>
>> Greetings!
>>
>> Er her en venlig sjæl der kan hjælpe mig med et lidt specielt rename-script?
>>
>> Jeg har en stak filer af typen filename.ext.x og de skal renames til
>> filename.x.ext - hvordan gør man lettest det?
>
> da jeg ikke ved om filename, ext, eller x er konstant, er jeg nødt til
> at gå ud fra det generelle tilfælde.
>
> hvis alle filer ligger i pwd. og de renamede filer skal ligge samme sted, vil
> flg oneliner virke.
>
> $ for x in `ls -1`; do a=`echo $x | awk -F. '{print $1}'`; b=`echo $x | awk -F. '{print $2}'`; c=`echo $x | awk -F. '{print $3}'`; mv $x $a.$c.$b; done
Jeg skulle mene den der kan reduceres kraftigt med:
awk -F. '{printf("%s.%s.%s\n",$1,$3,$2)}'
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
Søren Dideriksen (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Søren Dideriksen |
Dato : 17-01-08 13:48 |
|
Jesper Poulsen <nospam@ingensteder.dk> writes:
> Greetings!
>
> Er her en venlig sjæl der kan hjælpe mig med et lidt specielt rename-script?
>
> Jeg har en stak filer af typen filename.ext.x og de skal renames til
> filename.x.ext - hvordan gør man lettest det?
Hvis du er til zsh,
kan du gøre det ultrakort.
% autoload zmv
% zmv '(*).(*).(*)' '$1.$3.$2'
Den er da lidt lækker :)
--
Søren Dideriksen
| |
Jesper Poulsen (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 17-01-08 14:13 |
|
Søren Dideriksen wrote:
> Hvis du er til zsh,
> kan du gøre det ultrakort.
>
> % autoload zmv
> % zmv '(*).(*).(*)' '$1.$3.$2'
>
> Den er da lidt lækker :)
Bestemt. Tak for input
--
Mvh
Jesper Poulsen
| |
Peter Makholm (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Peter Makholm |
Dato : 17-01-08 14:39 |
|
Jesper Poulsen <nospam@ingensteder.dk> writes:
> Allan Willems Joergensen wrote:
>
>> rename(1) er et godt værktøj som sparer meget tasteri. Prøv at kigge på
>> det.
>
> Jeg _har_ kigget. Og jeg fandt det ikke særligt let tilgængeligt.
Og det *er* en distribution i Debian-familien du bruger?
$ rename 's/\.ext\.x$/.x.ext/' *
Det første argument er et perl-udtryk, oftest bare en substitution som
i ovenstående. Her tager vil alle filnavne der slutter ($) med
'.ext.x' og omskriver denne slutning til '.x.ext'.
Desvære skal punktummer lige escapes i regulære udtryk.
Jeg finder Debian's rename[1] specielt effektiv når man skal lave mere
advancerede ændringer:
rename 'y/A-Z/a-z/;s/(\d+)/sprintf"%04d",$1/e' IMG*.JPG
laver store bogstaver om til små og formaterer lige nummeret med op
til 4 indledende nuller.
rename 's/\.ext$/sprintf"%04d.ext",$a++/e' *
indsætter et løbenummer ind før filendelsen.
rename 's/(?<!exe)$/.exe/ if -x $_' *
Sætter endelsen .exe på alle eksekverbare filer der ikke allerede
har denne endelse.
Pointen er bare at distributioner i famile med for eksempel Red Hat og
Suse bruger det rename-program der følger med util-linux pakken. Det
er et helt andet program og dette programs manualside har jeg vist
aldrig rigtigt forstået.
1) Egentlig bør det retteligt kaldes perl's rename-script.
//Makholm
| |
Kent Friis (17-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Kent Friis |
Dato : 17-01-08 23:13 |
|
Den Thu, 17 Jan 2008 13:39:13 +0000 skrev Peter Makholm:
> Jesper Poulsen <nospam@ingensteder.dk> writes:
>
>> Allan Willems Joergensen wrote:
>>
>>> rename(1) er et godt værktøj som sparer meget tasteri. Prøv at kigge på
>>> det.
>>
>> Jeg _har_ kigget. Og jeg fandt det ikke særligt let tilgængeligt.
>
> Og det *er* en distribution i Debian-familien du bruger?
>
> $ rename 's/\.ext\.x$/.x.ext/' *
>
> Det første argument er et perl-udtryk, oftest bare en substitution som
> i ovenstående. Her tager vil alle filnavne der slutter ($) med
> '.ext.x' og omskriver denne slutning til '.x.ext'.
Som jeg forstod det var x (og muligvis også ext) variable dele af
filnavne.
Altså:
image.jpg.1 -> image.1.jpg
image.jpg.2 -> image.2.jpg
image.png.1 -> image.1.png
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
![](/images/tree/0.gif) Jesper Poulsen (18-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Jesper Poulsen |
Dato : 18-01-08 00:42 |
|
Kent Friis wrote:
> Som jeg forstod det var x (og muligvis også ext) variable dele af
> filnavne.
>
> Altså:
>
> image.jpg.1 -> image.1.jpg
> image.jpg.2 -> image.2.jpg
> image.png.1 -> image.1.png
Præcis
--
Mvh
Jesper Poulsen
| |
Peter Makholm (18-01-2008)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Peter Makholm |
Dato : 18-01-08 08:00 |
|
Kent Friis <nospam@nospam.invalid> writes:
>> $ rename 's/\.ext\.x$/.x.ext/' *
[...]
> Som jeg forstod det var x (og muligvis også ext) variable dele af
> filnavne.
$ rename 's/\.([^.]+)\.([^.]+)$/.$2.$1/' *
Eller hvis man ved at x er et tal og ext kun består af bogstaver:
$ rename 's/\.(\w+)\.(\d+)$/.$2.$1/' *
Så vil filer der ikke ligner mønsteret heller ikke blive omdøbt til
noget vås.
Man kan godt nok bruge vilkårlige perludtryk, men man kommer langt med
en en basal viden om perl5-kompatible regulære udtryk, der anvendens
mange andre steder end i perl.
//Makholm
| |
|
|