Toon posts:

[Bash] Illegale karakters uit bestandsnamen halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben op zoek naar een script wat de karakter ":" uit meerdere mappen en submappen filenames weghaalt en vervangt met "_".
Ik had het volgende opgebouwd maar dat werkt niet:

$> find . -name "*:*" | tr ":" "_" | cp * /testdata2

Echter op deze manier is de grafische output wel goed alsof de files hernoemd zijn maar dit blijkt slechts de output van de terminal. Weet iemand hoe ik het commando zou moeten runnen?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Zo te zien werk je met een Linux/UNIX shell, en problemen met betrekking tot bash horen niet hier maar in Non-Windows Operating Systems zoals je ook in Waar hoort mijn topic? had kunnen lezen. Daarnaast zou je vraag in dit forum een scriptrequest heten en zou daarom sowieso op slot gaan. :)

Ook pas ik even je topictitel aan. Het nut van een Engelse titel voor een Nederlands topic op een Nederlands forum ontgaat me een beetje. ;)

PRG>>NOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 15-10-2025

ripperke

w00t!

code:
1
for i in `ls |grep ':'`; do mv $i `echo $i |tr ':' '_'`; done


iets in die trend oid, maar zijn vast nog 1001 andere manieren voor :)
dit gaat ook wel files met een : aanpassen, dus niet enkel dirs, maar dat doe find van jou ook :p

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Je syntax gaat er van uit dat als je gewoon wat informatie heen-en-weer gooit, het opeens goedkomt? :)
Afhangend van of het perl-script rename op je systeem (waar je niks over zegt dus dat weet ik niet) staat zou
code:
1
find ./ -name '*:*' -exec rename 's/:/_/g' {} \;
moeten werken, of zelfs zonder de -name operator maar dan duurt het wat langer.
Als je geen rename hebt, kun je als zsh beschikbaar is een eind komen met zmv, en anders zelf maken met een for-loop, echo en sed.

  • SpamLame
  • Registratie: Augustus 2000
  • Laatst online: 02-02 07:46

SpamLame

niks

code:
1
2
3
4
5
6
for i in `ls |grep ':'`
do
    if [[ -f $i ]]
      then mv $i `echo $i |tr ':' '_'`
    fi
done


test op files $i een file dan : vervangen voor _

[ Voor 15% gewijzigd door SpamLame op 30-03-2007 14:12 ]


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

offtopic:
Hey douwe :w
Had het mailtje nog zin?

Nu met Land Rover Series 3 en Defender 90


  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 28-01 18:26
Kan het ook voorkomen dat er zowel directories als files daarbinnen van naam moeten veranderen?

Jaren terug ben ik hier wel mee bezig geweest, ook met andere rare tekens die roet in het eten gooiden...

[ Voor 36% gewijzigd door RemcoDelft op 30-03-2007 19:09 ]

Pagina: 1