Name aus Pfad filtern und Variable übergeben / Ordner der 2 Stufen weiter unten ist

  • Hallo Leute,


    ich probiere mich gerade mal an einem Skript. Komme aber nicht weiter.
    Ich will einen Ordnernamen der 2 Stufen weiter oben ist einer Variabe übergeben.
    Bsp.


    /var/flexshare/shares/videos/video.00/%@Full_Metal_Jacket/2010-08-13.22.12.54-0.rec/
    ich bin in diesem Ordner und will ein Skript ausführen.
    Nun soll der Name:
    "%@Full_Metal_Jacket" am besten noch ohne das % Zeichen an die Variable $filmname übergeben werden.


    leider bin ich da total überfragt.
    Zweck: ich wil per skript die ts Datein zusammenführen und per ffmpeg in mkv (720 oder 1080 transcodieren)


    also kurz (nur sinnbildlich):
    cat 0*.ts >all.ts
    ffmpeg all.ts -o /mkv/$filmname/



    1. Asus AT3N7A-I (ION) mit yavdr 0.3a und 500Gb Festplatte
    2. Asus AT5ion-t (ION2) mit yavdr 0.3a 16gb SSD Systemplatte und 2TB für Aufnahmen
    3. Gigabyte GA-K8NXP-SLI yavdr 0.3a alter VDR wird als Server dienen (im Aufbau)

    2 Mal editiert, zuletzt von sviper ()


  • cu

  • Code
    (echo /var/flexshare/shares/videos/video.00/@Full_Metal_Jacket/2010-08-13.22.12.54-0.rec/
     echo /var/flexshare/shares/videos/video.00/%@Full_Metal_Jacket/2010-08-13.22.12.54-0.rec/) |
    awk '{ if (match($0, "/%?([^/]+)/[^/]+.rec/", a)) print a[1] }'
    
    
    
    
    @Full_Metal_Jacket
    @Full_Metal_Jacket
  • oder

    Code
    path=/var/flexshare/shares/videos/video.00/%@Full_Metal_Jacket/2010-08-13.22.12.54-0.rec/
    filename=`echo $path | awk -F/ '{print $7}' | sed 's/[%@]//g'`
    echo $filename


    aber nur, wenn sich die anzahl der ebenen vor dem filmtitel nicht ändert

    yavdr 0.5, AMD Athlon(tm) II X2 240e, MSI 770-C45, 4GB, Cine S2, Terratec Cinergy S2 PCI HD, TechniSat SkyStar2 DVB-S, TechniSat AirStar2 DVB-T

  • Hallo


    Danke für diese Tipps.
    Ich habe jetzt den Tipp von keine Ahnung eingebaut. da ich die anderen nicht richtig verstanden habe. ;) und da sich die Ebene schon mal ändern kann.


    Code
    path="$(pwd)"
    #path="/var/flexshare/shares/videos/video.00/%@Full_Metal_Jacket/2010-08-13.22.12.54-0.rec/"
    # Erste Ebene entfernen
    filmname=$(dirname "$path")# Filmname
    filmname=$(basename "$filmname")
    # % am Anfang entfernen
    filmname=${filmname#%}
    filmname=${filmname#@}
    echo "$filmname"

    1. Asus AT3N7A-I (ION) mit yavdr 0.3a und 500Gb Festplatte
    2. Asus AT5ion-t (ION2) mit yavdr 0.3a 16gb SSD Systemplatte und 2TB für Aufnahmen
    3. Gigabyte GA-K8NXP-SLI yavdr 0.3a alter VDR wird als Server dienen (im Aufbau)

  • Hallo


    ich habe da noch mal kurz eine Frage.


    wie kann ich dann mein Skript das ffmpeg.sh heißen wird ausführen, ohne eine Konsole zu belegen.
    Oder anders ich bin per putty eingelegt will das skript starten und wider putty schließen.
    ich meine das war irgendwas mit &&.


    ./ffmpeg && oder so


    Danke schon mal

    1. Asus AT3N7A-I (ION) mit yavdr 0.3a und 500Gb Festplatte
    2. Asus AT5ion-t (ION2) mit yavdr 0.3a 16gb SSD Systemplatte und 2TB für Aufnahmen
    3. Gigabyte GA-K8NXP-SLI yavdr 0.3a alter VDR wird als Server dienen (im Aufbau)

  • Nen "&" dahinter. Weiß nur gerade nicht ob der Task gestoppt wird wenn du die Hauptshell (putty) beendest. "echo "befehl" | at now" ist da besser.


    Aber nimm besser "screen" (zum im Hintergrund schalten "strg+a" und dann "d"), damit kannst du später per "screen -r" wieder auf diese Shell zurückschalten.


    cu

Jetzt mitmachen!

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