[mv] %20 weg filteren?

Pagina: 1
Acties:

  • eXhale
  • Registratie: Oktober 2000
  • Niet online
Ik heb wat data overgezet dmv wget --mirror maar hij heeft bij de directory's (begrijpelijk) spaties vervangen met %20

Weet iemand hoe je dat kan mass find/replacen?

  • Maverick
  • Registratie: Oktober 2001
  • Laatst online: 16:53
* Maverick kijkt voortaan eerst in welk subforum hij zit. :{

[ Voor 86% gewijzigd door Maverick op 18-04-2005 12:42 ]

PSN: DutchTrickle PVoutput


  • blaataaps
  • Registratie: Juli 2001
  • Niet online

Verwijderd

for i in *;do mv "$i" "$(echo $i|sed s/%20/\ /g)";done 2>/dev/null

Verwijderd

Mijn wget onder Cygwin heeft de optie "--restrict-file-names=nocontrol".
Hierdoor zouden er geen characters g-escaped worden.

Misschien dat dit de volgende keer werkt...? :)

  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 02-02 18:49
gewoon een simpele
code:
1
rename '%20' ' ' *

moet het doen dacht ik

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Mayco schreef op maandag 18 april 2005 @ 17:04:
gewoon een simpele
code:
1
rename '%20' ' ' *

moet het doen dacht ik
Ik weet wel zeker van niet.

  • Jk_W
  • Registratie: Februari 2003
  • Niet online

Jk_W

I Think...

Waarom niet dan blaataaps?

Wanneer de bij de namen van de mappen de %20 wordt veranderd in niks, dan werkt het toch weer helemaal? Je OS kijkt toch gewoon naar de namen van de files en paden...

Ik zie niet in wat er niet klopt aan de opmerking van Mayco en ben wel benieuw WAAROM het dan niet zou werken...

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Zoiets?
find -name '*%20*' -print0 | xargs -0 rename '%20' ' '

Blog [Stackoverflow] [LinkedIn]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
jk_warrior schreef op maandag 18 april 2005 @ 17:20:
Waarom niet dan blaataaps?

Wanneer de bij de namen van de mappen de %20 wordt veranderd in niks, dan werkt het toch weer helemaal? Je OS kijkt toch gewoon naar de namen van de files en paden...

Ik zie niet in wat er niet klopt aan de opmerking van Mayco en ben wel benieuw WAAROM het dan niet zou werken...
Omdat het geen ms-dos is, en de rename op linux die je bij perl krijgt gewoon niet zo werkt. Je zegt "Wanneer bij de namen de %20 in niks wordt veranderd, werkt het", natuurlijk is dat zo (dat is namelijk precies de doelstelling), maar het rename commando heeft gewoon niet de syntax die Mayco noemt.
code:
1
2
SYNOPSIS
       rename [ -v ] perlexpr [ files ]

Zo is "%20" bij mijn weten niet een perlexpressie die %20 vervangt door "".

[ Voor 3% gewijzigd door blaataaps op 18-04-2005 17:30 ]


  • Onno
  • Registratie: Juni 1999
  • Niet online
code:
1
2
3
4
5
6
7
8
9
10
11
RENAME(1)                 Linux Programmer’s Manual                RENAME(1)

NAME
       rename - Rename files

SYNOPSIS
       rename from to file...

DESCRIPTION
       rename  will rename the specified files by replacing the first occur-
       rence of from in their name by to.
is wat `man rename` hier zegt op Linux. En dan klopt de regel van Mayco al ineens een heel stuk beter. :Y)

[ Voor 10% gewijzigd door Onno op 18-04-2005 17:46 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

blaataaps schreef op maandag 18 april 2005 @ 17:29:
[...]

Omdat het geen ms-dos is, en de rename op linux die je bij perl krijgt gewoon niet zo werkt. Je zegt "Wanneer bij de namen de %20 in niks wordt veranderd, werkt het", natuurlijk is dat zo (dat is namelijk precies de doelstelling), maar het rename commando heeft gewoon niet de syntax die Mayco noemt.
code:
1
2
SYNOPSIS
       rename [ -v ] perlexpr [ files ]

Zo is "%20" bij mijn weten niet een perlexpressie die %20 vervangt door "".
Volgens mij werkt de rename op Linux wel zo?
code:
1
2
3
4
5
6
7
NAME 
rename - Rename files
SYNOPSIS 
rename from to file...
DESCRIPTION 
rename will rename the specified files by replacing the
first occurrence of from in their name by to.
:?

[ Voor 4% gewijzigd door Spider.007 op 18-04-2005 17:47 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Hmm, dat is niet de rename die ik altijd tegenkom, ik kom voornamelijk de perl-variant tegen (als er al eentje is, meestal moet ik zelf aan de slag met scripten) :)

[ Voor 27% gewijzigd door blaataaps op 18-04-2005 17:58 ]


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 27-01 12:55

Bergen

Spellingscontroleur

Ubuntu is 't met blaataaps eens. "man rename" zegt:
NAME
rename - renames multiple files

SYNOPSIS
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

[ Voor 7% gewijzigd door Bergen op 18-04-2005 18:57 ]


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Voor de volledigheid even de manpage van de perl rename variant:
RENAME(1)              Perl Programmers Reference Guide              RENAME(1)

NAME
       rename - renames multiple files

SYNOPSIS
       rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPTION
       "rename" renames the filenames supplied according to the rule specified
       as the first argument.  The perlexpr argument is a Perl expression
       which is expected to modify the $_ string in Perl for at least some of
       the filenames specified.  If a given filename is not modified by the
       expression, it will not be renamed.  If no filenames are given on the
       command line, filenames will be read via standard input.

       For example, to rename all files matching "*.bak" to strip the exten-
       sion, you might say

               rename 's/\.bak$//' *.bak

       To translate uppercase names to lower, you'd use

               rename 'y/A-Z/a-z/' *

OPTIONS
       -v, --verbose
               Verbose: print names of files successfully renamed.

       -n, --no-act
               No Action: show what files would have been renamed.

       -f, --force
               Force: overwrite existing files.

ENVIRONMENT
       No environment variables are used.

AUTHOR
       Larry Wall

SEE ALSO
       mv(1), perl(1)

DIAGNOSTICS
       If you give an invalid Perl expression you'll get a syntax error.

BUGS
       The original "rename" did not check for the existence of target file-
       names, so had to be used with care.  I hope I've fixed that (Robin
       Barker).

perl v5.8.4                       2005-03-08                         RENAME(1)


Overigens heeft sepp.zutphen.nu al een heel eind voor je voorgekauwd wat je moet doen :)

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
rename is geen Standaard Linux dus de discussie wat het zou moeten doen is enigzins zinloos.

[ Voor 20% gewijzigd door MSalters op 19-04-2005 00:01 ]

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

MSalters schreef op dinsdag 19 april 2005 @ 00:00:
rename is geen Standaard Linux dus de discussie wat het zou moeten doen is enigzins zinloos.
Standaard linux heeft geen commando's, linux is de kernel en niet de programma's dus wat is je punt?
Elk distro bepaald voor zichzelf welke programma's ze meeleveren dus dat kan verschillen.

[ Voor 3% gewijzigd door Wolfboy op 19-04-2005 00:38 ]

Blog [Stackoverflow] [LinkedIn]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Wolfboy schreef op dinsdag 19 april 2005 @ 00:36:
[...]
Standaard linux heeft geen commando's, linux is de kernel en niet de programma's dus wat is je punt?
Elk distro bepaald voor zichzelf welke programma's ze meeleveren dus dat kan verschillen.
Dat neemt niet weg dat er gewoon standaarden zijn voor distributies (net als die er voor unix in het algemeen zijn), en meestal als iemand "linux" zegt, wordt toch de combinatie kernel+userland bedoeld.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 14:12
Okay, iedereen weer wat geleerd, er zijn dus verschillende versies van rename (oh wat handig! Gebruiken in een scriptje en kijken op wat voor interessante manieren dat hopeloos mis kan gaan op een ander systeem!)

Om die reden is het dus waarschijnlijk slimmer om rename niet in scripts te gebruiken, maar gewoon op de commandline (als je zeker weet welke je hebt) zou het dus wel moeten werken.

Verwijderd

dawuss schreef op maandag 18 april 2005 @ 19:18:
Overigens heeft sepp.zutphen.nu al een heel eind voor je voorgekauwd wat je moet doen :)
Ik dacht dat ik het helemaal had voorgekauwd... ;)
Tenzij de te renamen zooi verdeeld is over allerlei subdirectories, want mijn methode werkt alleen in de huidige directory... maar het werkt daarin wel 100%.

En wat dat rename-commando betreft, al heb je de 'goede' versie, dan nog werkt
rename '%20' ' ' *
niet helemaal, want per bestand wordt alleen de eerste '%20' omgezet.
(Of heb ik weer een andere versie dan de rest van de wereld?)
Dus als een bestandsnaam meerdere keren een '%20' bevat, moet bovenstaand rename-commando dus meerdere keren worden uitgevoerd...
Pagina: 1