Hilfe bei Perl Script gesucht

  • Hi,

    da ich für verschiedene Gameserver immer wieder mal Dateien mit z.B. Maplisten erstellen muss, habe ich mir (schon länger her) mal ein Perl-Script zusammen gebastelt. Nun brauche ich eine Liste mit Mapnamen, bei denen jedoch die Erweiterung der Datei abgetrennt werden muss, und bekomme das nicht hin. Kennt sich hier jemand mit Perl aus und kann helfen?

    Mein Script :

    Das Script ist jetzt angepasst für einen GarryMod-Server, und soll die Maps, welche mit "ttt_" im Filenamen beginnen, einfach in einer Textdatei auflisten (ein Filename je Zeile). Nur das ich im Moment noch die Erweiterung manuell löschen muss.

    Das Script rufe ich in dieser Form auf : perl gen_mapcycle.pl > garrysmod/cfg/mapcycle.txt


    Gruß
    Ralph

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

    2 Mal editiert, zuletzt von RHA (26. April 2014 um 17:45)

  • Python ist nicht Perl ;)

    Welches Problem hast du mit dem Python/Perl-Skript?

    In der Bash würdest du so effektiv zum Ziel kommen:

    Code
    find  /home/ralph/steam/garrysmod/garrysmod/maps/ -type f -name 'ttt_*bsp'|awk -F. '{print $1}'

    "Security is like an onion - the more you dig in the more you want to cry"

  • Python ist nicht Perl ;)


    Du hast natürlich Recht. Weiß auch nicht was mich da vorhin geritten hat. Hab den Titel und Text mal angepasst.

    Deinen Tip werde ich mal ausprobieren.

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

  • Die Lösung funktioniert leider nicht ganz, da der Pfadname immer mit drin ist. Stricke ich mir das so um, das es in dem entsprechenden Pfad läuft, dann habe ich immer ein "/" am Anfang stehen. Ich benötige leider NUR den Dateinamen ohne Erweiterung.

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

  • Hmmm ... irgendwie wollen eure Vorschläge nicht so wie ich möchte. Habe mir jetzt mit folgendem Code beholfen :

    Bash
    #!/bin/sh
    
    
    
    
    chdir /home/ralph/steam/garrysmod/garrysmod/
    find . -name "ttt_*.bsp" -exec basename \{} .bsp \;

    Die Ausgabe ist zwar unsortiert, aber das ist nicht wirklich schlimm. Vielleicht finde ich dafür auch noch eine Möglichkeit.

    Trotzdem herzlichen Dank für eure Bemühungen.

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.