[GELÖST] Pfad-String auf Dateinamen reduzieren?!?

  • Hallo!


    Stehe grade mal wieder auf dem Schlauch:


    Ich will einen String (Pfad beliebiger Länge) auf den Dateinamen reduzieren. Das ganze als Shell-script! Beispiel:


    /der/pfad/zur/Datei.txt -> auf Datei.txt


    /der/pfad/zur kann aber auch länger oder kürzer sein, Trenner sind aber immer "/"! Ich brauche also Quasi immer das was nach dem letzten "/" kommt!!


    Vorschläge?!?


    Danke und Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

    2 Mal editiert, zuletzt von Toxic-Tonic ()

  • Nur mal schnell grob:


    Drehe den String um ("reverse"), suche das erste "/" und trenne dort ab.
    Drehe den Anfang wieder um -> fertig.


    Wohnzimmer: Geode NX1750 512MB M811, TT1.5, TT-DVB-S Budget, 2,4TB, Mahlzeit 4.0b,vdr 1.4.6extp25
    Spielwiese: Scenic-S, Cel 900, TT-Budget-S, dxr3 oder xine, 40 GB
    Analog: Athlon 2000XP, ECS K7S5A, 512MB, PVR350+PVR150MCE, 500GB, easyVDR 0.5rc1
    Neu: Asus P5K-V, E6750, 2GB, TT-Budget-S, 80GB, NV 7300GS, easyVDR 0.5rc2 mit xineliboutput

  • Ach ja, das ganze möglichst als Shell-Script! ;)

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • basename - Verzeichnis und Suffix vom Dateinamen entfernen
    Wär ev auch geeignet


    Und falls du es mal umgekehrt brauchst:
    dirname - Nicht-Verzeichnis-Suffix vom Dateinamen entfernen

  • ... Shell-Script! Hatte ich vergessen! ;)

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Jep! habe ich auch grade getan! Passt so, Danke!!


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Zitat

    Original von fabo
    Nur mal schnell grob:


    Drehe den String um ("reverse"), suche das erste "/" und trenne dort ab.
    Drehe den Anfang wieder um -> fertig.


    Wieso erst umdrehen ? Kannste nich von hinten suchen oder kost das ne Steuer ? :)


    @toxic : Kannste kein Script schreiben oder warum willstes fertig haben ?


    HJS


    Oh - zu langsam :whatever

    Working VDR : VDR-1.4.6 - ACPI/NVRAM Wakeup - working on hjslfs

    Einmal editiert, zuletzt von hjs ()

  • Moin,
    leider zu langsam
    aber wo es nun doch schon tut ;)



    Ablegen zum Beispiel als zerleger.sh


    dann liefert: ./zerleger.sh /was/kann/man/zerlegen.txt
    zerlegen.txt


    Gruß Ulf

    Samsung UE43RU7479U, Antec Fusion Black, Prime A320m-k, Ryzen3 3200G, 2* DVB-T2,
    Yavdr-ansible auf Ubuntu Server 22.04

  • Zitat

    Original von hjs


    Wieso erst umdrehen ? Kannste nich von hinten suchen oder kost das ne Steuer ? :)


    HJS


    Ne, da ich beruflich nur mit MS-C++ :versteck o.ä. arbeite, kann ich da die Suchfunktion benutzen, und die geht halt nur von vorne :)


    Viele Grüsse,


    Frank


    Wohnzimmer: Geode NX1750 512MB M811, TT1.5, TT-DVB-S Budget, 2,4TB, Mahlzeit 4.0b,vdr 1.4.6extp25
    Spielwiese: Scenic-S, Cel 900, TT-Budget-S, dxr3 oder xine, 40 GB
    Analog: Athlon 2000XP, ECS K7S5A, 512MB, PVR350+PVR150MCE, 500GB, easyVDR 0.5rc1
    Neu: Asus P5K-V, E6750, 2GB, TT-Budget-S, 80GB, NV 7300GS, easyVDR 0.5rc2 mit xineliboutput

  • fabo
    na na, so schlimm ist es aber auch nicht wirklich...


    C: strrchr() oder STL: basic_string::find_last_of() oder MFC: CString::ReverseFind(), z.B. ... 8)
    oder meinst du mit Suchfunktion etwas anderes?

    VDR1: AMD Duron-1300, 512mb RAM, Nexus-S rev2.1, Airstar 2, Debian Lenny, kernel: 2.6.28-etobi.3, VDR 1.6.0-17 experimental/extensions von Tobi
    VDR2: Athlon XP-M-2600+, 512mb RAM, TT Prem 1.3 DVB-S, Skystar2, Airstar 2, Debian Lenny, kernel: 2.6.28-etobi.3, VDR 1.6.0-17 experimental/extensions von Tobi
    Extern: Activy300, Gen2VDR V2

  • Zitat

    Original von geeg07
    fabo
    na na, so schlimm ist es aber auch nicht wirklich...


    C: strrchr() oder STL: basic_string::find_last_of() oder MFC: CString::ReverseFind(), z.B. ... 8)
    oder meinst du mit Suchfunktion etwas anderes?


    Ups, danke, bin wohl etwas aus der Übung mit den strings ... :)


    Wohnzimmer: Geode NX1750 512MB M811, TT1.5, TT-DVB-S Budget, 2,4TB, Mahlzeit 4.0b,vdr 1.4.6extp25
    Spielwiese: Scenic-S, Cel 900, TT-Budget-S, dxr3 oder xine, 40 GB
    Analog: Athlon 2000XP, ECS K7S5A, 512MB, PVR350+PVR150MCE, 500GB, easyVDR 0.5rc1
    Neu: Asus P5K-V, E6750, 2GB, TT-Budget-S, 80GB, NV 7300GS, easyVDR 0.5rc2 mit xineliboutput

  • Nur so als Kommentar, kann die Bash auch selbst:


    Example:
    fileWithPath=/path/to/file.ext
    fileName=${fileWithPath##*/}
    path=${fileWithPath%/*}


    'fileName' sollte jetzt 'file.ext' sein, path ist '/path/to'.

    ...Herr, bewahre mich vor dem Glauben, alles (besser) zu wissen... ;D

  • Du hast natürlich vollkommen recht, und es ist mir auch gleich nach dem Absenden noch aufgefallen, dass ich die falsche Baustelle erwischt habe. Dann habe ich gedacht, ich warte bis der Erste drauf kommt...
    Lange hat es eh nicht gedauert :hat2

    VDR1: AMD Duron-1300, 512mb RAM, Nexus-S rev2.1, Airstar 2, Debian Lenny, kernel: 2.6.28-etobi.3, VDR 1.6.0-17 experimental/extensions von Tobi
    VDR2: Athlon XP-M-2600+, 512mb RAM, TT Prem 1.3 DVB-S, Skystar2, Airstar 2, Debian Lenny, kernel: 2.6.28-etobi.3, VDR 1.6.0-17 experimental/extensions von Tobi
    Extern: Activy300, Gen2VDR V2

  • Zitat

    fileName=${fileWithPath##*/}


    Uff. Also, ich hab jetzt die Manpage von bash (naja, den entsprechendan Abschnitt halt) 3 Mal gelesen bis ich verstanden hab was da passiert. Hätte ich es gesucht wär ich beim Lesen wohl nie dahinter gekommen daß das genau die Funktion ist die ich suche :(


    Pit

    VDR2: ASRock J4105-ITX, DVBSky S952, openSUSE Tumbleweed, VDR 2.4.7

    softhddevice/vaapidevice, DFAtmo, xmltv2vdr, tvscraper, tvguideng, VDRAdmin-AM (alles git, aber alt)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!