Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.05.2007, 18:56
Spike



Hi

Durch diverses umkopieren eine Dateibestandes sind die Umlaute in den Dateinamen kaputt gegangen.
Meine Idee ist jetzt manuelles umbenennen, doch da das sehr viele Dateien sind wäre eine Suche hilfreich.

Mein bisheriger Ansatz ist alle Dateinamen zeilenweise in eine Datei zu schreiben und dann mit regulären Ausdrücken nach einem Zeichen zu suchen, welches nicht den erwarteten entspricht:
Quellcode:cat pathes.txt | egrep '[^_a-zA-Z0-9 \./-#~=]+'
Doch leider Tauchen immer noch viel zu viele Dateien im Ergebnis auf, z.B.:
/media/stor400a/Eigene Dateien/Visual Studio Projects/mysql++-1.7.40/ChangeLog

Mach ich mir das viel zu kompliziert, oder hat jemand noch Vorschläge fürs regex?

Danke
Spike_900

--

Kill? Box? Killbox!
Die Intelligenz ist eine Konstante, nur die Bevölkerung wächst.

zum Seitenanfang zum Seitenende Profil || Suche
001
22.05.2007, 19:17
LeJean



'/[^_A-Za-z0-9 \./\-#~=]+\n/'
wenn du zeilenweise liest, nimm mal das \n dazu.. ausserdem muss ein - (minus) in einer Charakterklasse maskiert werden (es sei denn du meinst die Char Range von / bis #)

-LeJean-

--

zum Seitenanfang zum Seitenende Profil || Suche
002
22.05.2007, 19:37
oxff



Das mit dem \n ist erstmal Quatsch, egrep arbeitet ja normalerweise ohne Extra-Flags zeilenbasiert. Ausserdem ist das doch klar, dass der mysql++ flagged, wenn du '+' nicht in deiner Character-Class hast...

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche
003
22.05.2007, 19:47
Spike



@0xFF: huch das war nen blödes beispiel

/media/stor400a/Eigene Dateien/earth-marine.gif
ist aber z.b. auch drin.
Dass das - escaped werde muss hab ich wohl über sehen, hilft leider trotzdem nicht.

Ich hab jetzt noch mal versucht mit -v die Zeilen zu entfernen, die nur aus gültigen Zeichen bestehen, bringt aber auch nix:
Quellcode:egrep -v '^[_A-Za-z0-9 \./\-#$+~=]+$'
/media/stor400a/Eigene Dateien/earth-marine.gif
ist immer noch drin.

EDIT:
Habs jetzt geschaft. Allerding hab ich dazu php benutzt mit preg:
Quellcode:preg_match('|[^_A-Za-z0-9 \./\-$#~=+,()\'&%\[\]!]+|i', trim($line));
Danke euch trotzdem.

--

Kill? Box? Killbox!
Die Intelligenz ist eine Konstante, nur die Bevölkerung wächst.


Dieser Beitrag wurde am 22.05.2007 um 21:02 von Spike_900 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
23.05.2007, 00:23
LeJean



hum, ich nutz die regulären Ausdrücke nur in PHP, wusste nich dass egrep von Haus aus Zeilenweise arbeitet...

--

zum Seitenanfang zum Seitenende Profil || Suche