Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
27.07.2021, 07:08:55

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25783
  • Letzte: imsebrim
Statistiken
  • Beiträge insgesamt: 746974
  • Themen insgesamt: 60078
  • Heute online: 339
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [erledigt] Jeder 1. Buchstabe eines Wortes großgeschrieben  (Gelesen 768 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[erledigt] Jeder 1. Buchstabe eines Wortes großgeschrieben
« am: 10.06.2021, 21:06:58 »
Hallo Forenmitglieder,

ich versuche gerade den Inhalt einer mit Songtiteln wie "ANIMOTION - OBSESSION.MP3" gefüllten PLS-Datei mittels Skript zu ändern. Wie bereits im Betreff erwähnt, soll jeder 1. Buchstabe eines Wortes groß- und der Rest kleingeschrieben werden.

Mein bisheriger Code funktioniert leider noch nicht:

#!/bin/sh
FILE=$1

cat $FILE|while read line;do
        touch=$(echo $line|grep -i ".mp3")
        if [[ "$touch" != "" ]]
        then
                echo $line|tr '[:upper:]' '[:lower:]'
        else
                echo $line
        fi
done

Hat jemand einen Verbesserungsvorschlag für mich?
« Letzte Änderung: 11.06.2021, 19:25:11 von lmFriend »

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben, Rest klein
« Antwort #1 am: 10.06.2021, 21:26:29 »
Dann wird aber die Playlist nicht mehr funktionieren. ANIMOTION - OBSESSION.MP3 ist ja wohl ein Dateiname?

Oder änderst Du auch die Dateinamen?

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #2 am: 10.06.2021, 21:34:32 »
Die Dateinamen wurden bereits vor längerer Zeit geändert und die PLS nicht verwendet. Jetzt möchte ich sie wieder einsetzten und bei ca. 150 Titeln erscheint mir die Gestaltung über ein Skript fehlerfreier.

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #3 am: 10.06.2021, 21:39:54 »
Also ist z.B ANIMOTION - OBSESSION.MP3 der Titel in der Playlist?

Du könntest es mit python machen und das .MP3 gleich weglassen.

Beispiel (liste.pls und neue_liste.pls anpassen)

in_text = open("liste.pls", "r").read().splitlines()
out_text = ""

for line in in_text:
    if ".MP3" in line:
        extension = line.rpartition(".")[2].lower()
        title = line.rpartition(".")[0].title()
        out_text += f"{title}\n"
    else:
        out_text += f"{line}\n"

print(out_text)

with open("neue_liste.pls", "w") as f:
    f.write(out_text)

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #4 am: 10.06.2021, 21:55:22 »
Sorry, ich vergaß die Antwort - es ist einer der Titel in der Playlist. Ich habe keine Erfahrung mit python. Wie muss die Datei aufgerufen werden und kann ich sie unter Actions ablegen, damit sie im Kontextmenue aufgelistet ist?

Note: noch eine Frage, bekommt dein Code die Dateiendung .py?
« Letzte Änderung: 10.06.2021, 22:05:05 von lmFriend »

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #5 am: 10.06.2021, 22:05:42 »
Den Code kopierst Du in deinen Texteditor und speicherst es als test.py zum Testen im Downloads Ordner

Vorher aber liste.pls ersetzen durch den Pfad deiner Playlist.

Dann im Terminal 

cd ~/Downloads
python3 ./test.py

neue_liste.pls findest Du dann im Downloads Ordner.

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #6 am: 10.06.2021, 22:09:14 »
OK, teste ich später und melde mich danach noch einmal...

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #7 am: 10.06.2021, 22:48:20 »
Also wenn es um Dateinamen geht dann sollte folgendes Bash script den Job tun:
mmv \* \#l1
for i in *
do
a=`echo $i | sed 's/\(\<.\)/\U\1/g'`
mv "$i" "$a"
done
Wenn du es nicht schon hast musst du davor schnell mmv per apt installieren.
dann diesen Code in eine Datei mit beliebigem Namen rein und in das Verzeichnis schieben mit deinen mp3s und
bash DEINSCRIPTMITBELIEBIGEMNAMEN python braucht man für sowas nicht bemühen ;)

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #8 am: 10.06.2021, 22:52:19 »
könnte man sich auch mal für später speichern das script.
Ich habs jedenfalls getan  :P

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #9 am: 10.06.2021, 22:53:59 »
Ich hab beim googlen nach diesem Problem gesehen dass es scheinbar eigens Programme gibt mit GUI die nichts anderes tun als MP3 Dateien umzubennen  ???
Sowas braucht man natürlich nicht  :-*

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #10 am: 10.06.2021, 23:00:18 »
Also wenn es um Dateinamen geht ...

Es geht eben nicht um Dateinamen sonderum um Titel in der Playlist.


Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #11 am: 10.06.2021, 23:08:54 »
Achso ok
Wie kann man sich diese PLS Datei denn Vorstellen? Ist das einfach eine Liste mit den Dateinamen?
Oder was steht da sonst noch drin?

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #12 am: 10.06.2021, 23:24:21 »

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #13 am: 10.06.2021, 23:38:07 »
Uff... jetzt wird klar warum mit python gearbeitet werden soll.
Das ist natürlich schon etwas komplizierter...
Ich mein theoretisch könntest du sicher auch das mit commandline tools bewerkstelligen.
Vielleicht nach "File" greppen, dann am letzten Slash cutten und dann mit meinem sed Befehl...
So könntest du dir zumindest eine Liste erstellen mit den neuen Dateinamen.
Dann müsstest du die natürlich noch irgendwie in die ursprüngliches PLS zurückbekommen...
In Python wird das aber glaub ich auch nicht einfacher werden.

Re: Jeder 1. Buchstabe eines Wortes großgeschrieben
« Antwort #14 am: 10.06.2021, 23:49:43 »
Aber moment mal! Müsste es dann nicht folgendermaßen gehen:
#!/bin/sh
FILE=$1

cat $FILE|while read line;do
        touch=$(echo $line|grep -i ".mp3")
        if [[ "$touch" != "" ]]
        then
                allesklein=`$line|tr '[:upper:]' '[:lower:]'`
                anfanggross=`sed 's/\(\<.\)/\U\1/g' $allesklein`
                echo $anfanggross
        else
                echo $line
        fi
done