[SUCHE] Script um in Datei zeichen zu ersetzen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

u2_honolu

Benutzer
Registriert
07. Dez. 2011
Beiträge
38
Reaktionspunkte
0
Punkte
0
Hallo!

Ich hoffe, dass das Topic nicht zu verwirrend ist. Folgendes Problem ergibt sich in meiner Nutzung mit der DS!
Vorab aber noch eine kurze Erläuterung warum ich solch ein Script brauche...

Ich nutze zum Abspielen meiner Musik zwei Varianten. Einmal auf meinem Smartphone DS Audio und auf meinem PC den Windows Media Player (WMP). Da ich in der Woche und allgemein mich nie an einem Ort befinde und ich auch nicht immer Internet auf meinem Laptop zur Verfügung stehen habe, synchronisiere ich meinen Musikordner mittels der Cloudstation. Da meine Musiksammlung recht umfangreich ist, benutze ich, um den Überblick zu bewahren Playlists.

Jetzt zu meinem Problem... Wenn ich neue Playlists mit dem WMP erstelle klappt das alles wunderbar ich speichere sie im .m3u - Format ab und die Cloudstation synct die Datei auf meine DS. Die DS Audio zeigt die neue Playlist an und die Dateien sind theoretisch abspielbar. Nur leider kann die DS nicht die Medieninformationen abrufen. Dadurch wird mir dort immer nur der Dateiname angezeigt was ja durchaus sehr verwirrend sein kann.
Die Ursache für diese Problem liegt darin, dass der WMP die Einträge in der Playlist wie folgt abspeichert: ..\Musik\xxx\xxx\xxx.mp3 also mit einem Backslash.. die Audiostation mag aber lieb den Slash... ../Musik/xxx/xxx/xxx.mp3

Nun bin ich auf der Suche nach einem Script, welches mir die Dateien in dem Ordner wo die Playlists liegen durchsucht und die \ gegen / ersetzt. Am besten soll das Script den Ordner im 60 sec Takt überwachen.

Hört sich für meinen Laienhaftenverstand durchaus machbar an im Vergleich was sonst so mit der DS möglich ist :)

Kann mir da vielleicht jemand helfen?
 
ein fertiges Script kenne ich ned, aber auf der Kommandozeile sollte das recht einfach mit tr oder sed gehen
Code:
tr '\' '/' </pfad/zum/file >/pfad/zum/neuen/file
 
da ich im scripten garkeine Ahnung habe, wäre es ganz nett, wenn irgendwer mir sagen könnte, falls es sowas nicht geben sollte wie man sowas am besten umsetzen kann.. Ist Python da vielleicht eine Option? Kann man damit Kommandozeilenbefehle einfach und unkompliziert ausführen?
 
also mit python oder perl geht das sicher auch. Nur dürfte es auwändiger sein, als ein tr Kommando direkt auf der Kommadozeile :-)
 
ja aber das tr Kommando kann ich halt nicht direkt über die DS automatisieren, oder? so müsste ich mich jedesmal über putty connecten und den befehl eingeben?? oder hab ich da was verpasst?
 
du kannst ein Kommando entweder selber manuell auf der Konsole abdrücken oder einfach in ein File schreiben und dann das Shellscript regelmässig mittels cron ausführen lassen. Einmal wirst du aber mindestens auf die Kommandozeile müssen :-)
 
Mit der neuen DSM 4.2 Beta bzw. mit der Final ist es möglich im DSM einen Zeitplan für das ausführen von Skripten einzurichten. Dann musst du nur dein Skript basteln und es im DSM einfügen und einen Zeitplan dazu konfigurieren.
 
ein fertiges Script kenne ich ned, aber auf der Kommandozeile sollte das recht einfach mit tr oder sed gehen
Code:
tr '\' '/' </pfad/zum/file >/pfad/zum/neuen/file

funktioniert der befehl in dem fall für den gesamten ordner oder würde nur die jeweilige datei die ich angegeben habe ersetzt werden?
weil ziel wäre es ja den ordner zu überwachen und nicht eine einzelne datei!
 
das wäre nur für ein File. Willst du das für eine Liste von Files machen, dann am besten mittels einer Schleife (for oder while)
Ohne Garantie, dass es geht aka ungetestet ;-)
Code:
#!/bin/bash

cd /pfad/zum/ordner/mit/files
for i in $(find ./ -maxdepth 1 -type f) ; do
 tr '\' '/' <$i >${i}_neu
done
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat