Namen der Aufnahme auslesen, Möglichkeiten?

  • Hi,


    Es gibt ja einige Möglichkeiten den Namen ner VdrAufnahme in nem Script
    auszulesen, und weiter zu verarbeiten.


    Eines gleich vorweg, ich möchte den Namen einer Aufnahme nicht aus der
    info.vdr auslesen (diese Möglichkeit kenn ich ja auch schon ganz gut).


    Nun zur Sache, ich hab jetzt hier folgendes Scriptschnipsel;



    Das funktioniert auch ganz gut, aber dennoch kommt mir das nur um nen Namen (Titel)
    auszulesen etwas aufwändig vor.


    1.
    Gibts da Möglichkeiten das zu verkürzen?


    2.
    Oder könnte man die Befehle zu sed nicht von ner if-Abfrage abhängig machen?, denn
    immer hat ja ne Aufnahme nicht z. b: Umlaute im Namen.


    Falls sich jemand wundert wegen der Zeile wie folgt im Script;

    Code
    RECNAME="$(echo $RECNAME|sed -e 's/#5F/_/g')"


    Die ersetzt ja das #5F durch nen Unterstrich, und die Zeichenfolge #5F
    entsteht hier durch den Patch FriendlyNames, deshalb brauch ich die Zeile.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hallo Bert,


    Ohne experte zu sein, man könnte es ein bischen eindampfen.


    TEST=/video/%%RTL_aktuell/2007-11-29.18.43.21.99.rec


    # Titel
    TEST=${TEST%/*}
    TEST=${TEST##*/}


    jetzt haben wir "%%RTL_aktuell"


    # % und @ entfernen (unter der annahme das % immer vorne steht)
    TEST=$(echo $TEST| sed -re 's/^[%]*?//' | sed -re 's/^[@]*?//')


    Den rest weis ich gerade nicht ob man den komprimieren kann. Außer das man es in eine zeile packt ;)


    Gruß
    Viking

  • Hallo,


    ach ja, um alle #XX zeichen (wie dein #5F) von VDR in lesbare zeichen zu konvertieren hatte ich mal was gebastelt :


    Keine ahnung ob man das kleiner kriegt, habe mich seit dem nicht wieder damit beschäftigt.


    So übersetzt z.b.
    Hex2Text Die_fabelhafte_Welt_der_Am#E9lie
    in :
    Die_fabelhafte_Welt_der_Amélie


    EDIT: wer sich über das Text="$(echo $Text|tr '%' '§')" wundert - so weit ich erinnere ging was mit den % zeichen schief. Also zuerst umwandeln in § und hinterher wieder zurück. Kann natürlich mal in die hose gehen wenn es eine aufnahme mit § im namen gibt ...


    Gruß
    Viking

  • Hi, viking


    Das is ja schon was, Danke !


    Hab hier das Problem das ich unschlüssig bin was ich am besten tun soll.
    Hab bisher den Titel immer aus der info.vdr ausgelesen und weiterverarbeitet, aber es
    könnte ja mal passieren das keine brauchbare info.vdr vorliegt.
    Braucht ja nur der epg zu versagen oder ?


    Deshalb glaub ich es ist besser den Titel aus der Bezeichnung der Aufnahme
    (also so wie man ihn im Menü der Aufzeichnungen halt sieht) auszulesen.


    Ich brauch den Titel dann später auch für ein Label auf ner fertigen Dvd, und meine mal
    gelesen zu haben das im Label ner Dvd keine Leerzeichen und am besten alles in
    Grossbuchstaben enthalten sein soll (glaube wegen der Kompatibilität in StandAlone Playern).
    Dabei will ich dann die Umlaute auch gleich wandeln.
    Jedenfalls glaub ich es hat Vorteile so, denn wenn irgendwelche sonstigen Sonderzeichen
    im Aufzeichnungsnamen enthalten sind, könnte man ja per Menü vor Anwurf des Scriptes
    noch umbenennen.
    Na ja, mal sehen.
    Jedenfalls Danke auch für dein Script bezgl. der #5F Zeichenfolge.


    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi, viking


    Hab das jetzt mal so wie folgt eingerichtet;



    Ist nicht schlecht, aber ich steig nicht durch wies durch das;
    #E9
    in nem Namen zu dem é kommt, daher kann ichs nicht auf E ändern
    was ich aber bräuchte, da ich ja weiter oben alles zu Grossbuchstaben ändern lasse.


    Hast du da vielleicht noch nen Tipp ?



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Ich hab die Sache mal etwas mehr zusammen gefasst:



    So werden alle sed-Ersetzungen in einem Rutsch gemacht, und die tr-Aufrufe auch gleich mit. Die Hex-Ersetzung ist nur mit sed wohl nicht machbar, dafür aber als reine shell-Schleife ohne externe Kommandos. Das verbleibende sed kann man sicher noch durch Shell-Ersetzung ersetzen, aber mit sed ist's halt bequemer. ;)


    Die Hex-Ersetzung ist so denke ich auch etwas sauberer, der String wird hier ordentlich zerlegt und neu zusammen gesetzt. Natürlich handelst du dir mit der Hex-Ersetzung wieder jede Menge Sonderzeichen ein, die wieder zu ersetzen ist wohl eine reine Fleißarbeit...


    Gruß,


    Udo

  • Hi, Urig


    Danke !
    Das sieht sauber aus, und funktioniert auch, obwohl ich hab hier zum Testen
    ein Aufnahmeverzeichnis auf folgendes umbenannt;


    Zitat

    %@Ein_#E9(üö?ßk%lein)e§s_#5FGebetä?:!(


    Wenn ich da drauf meine gestrige Lösung loslasse kommt als RECNAME
    das folgende raus;

    Zitat

    EIN_éUEOESSK%%LEINES__GEBETAE


    Mit deiner Lösung krieg ich das folgende raus;

    Zitat

    Ein_éUEOESSk%%leine§s__GebetAE


    Da ist irgendwo noch ein Probs, ich bräuchte alles in Grossbuchstaben.
    So wirklich durchblicken tu ich da nicht (gerasde bei der Hex Geschichte)
    , dazu weiss ich noch zuwenig.



    Das mit den Sonderzeichen als Fleissaufgabe ist auch nicht das Wahre, da hast
    du natürlich recht.
    Jetzt bin ich wieder unschlüssig wie ich den Namen am besten auslesen sollte.


    Bisher hab ich den aus der info.vdr ausgelesen (das hätte wieder den Vorteil
    das ich die Hex Geschichte nicht brauchen würde), aber wenn der Epg versagt
    gibts vielleicht keine brauchbare info.vdr oder ?
    Ich glaub sowas hatte ich schon mal.


    Hab auch schon überlegt den Namen aus der info.vdr auszulesen
    , und sollte es keine brauchbare oder gar keine info.vdr geben nur dann
    den Namen aus dem Aufnahmeverzeichnis selbst zu verwenden.


    Das ganze brauch ich für ein Script welches ne Dvd aus den Aufnahmen macht,
    aber dieses würde ja abbrechen wenn die Namensübergabe mal nicht klappen würde.


    Wie würdest du da vorgehen um so einem Problem vorzubeugen ?



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

  • Hi,


    Wenn ich das ganze umdrehe also so;



    dann kommt das dabei raus;

    Zitat

    Ein_éUEOESSk%%leines__GebetAE


    Jetzt gehts eigentlich nur noch darum das ich alles in Grossbuchstaben brauche auch statt dem é ein E
    dann sollte doch alles soweit klappen, oder könnts dann immer noch Probs mit irgendwelchen Sonderzeichen geben?


    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau


  • Falls mal sed ausgegangen sein sollte :gap



    LG Ronny

  • Hi, Ronny


    Danke !
    Leider klappt damit;



    das Wegschneiden der % oder @ am Anfang des Verzeichnisnamens nicht.


    Gäbe es da auch ne kurze Lösung alles in Grossbuchstaben zu wandeln ?



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi, Ronny


    Ok das mit dem Abschneiden klappt eh, war mein Fehler
    Hatte ja zum testen das Aufnahmeverzeichnis auf;


    Zitat

    %@Ein_#E9(üö?ßk%lein)e§s_#5FGebetä?:!(


    geändert,
    und dabei sieht man aber im Vdr das Ganze so;

    Zitat

    %%@Ein_#E9(üö?ßk%lein)e§s_#5FGebetä?:!(


    Warum man im Vdr zweimal das % angezeigt bekommt weiss ich nicht
    in den Eigenschaften des Verzeichnisses jedenfalls wird nur ein %
    angezeigt.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,


    Bislang hab ichs jetzt so;



    Das bringt schon fast das gewollte, sieht dann so aus;

    Zitat

    EIN_éUEOESSK%%LEINES__GEBETAE


    Schade per Shell dürfte da nix gehen mit Klein zu Grossbuchstaben, deshalb tr


    Der doppelte Unterstrich is natürlich nicht schön, und auch das é
    ist nicht das was ich will.
    Das passiert nur durch das Hex Zeugs da wird halt statt der Zeichenfolge #5F
    ein Unterstrich produziert , und statt der Zeichenfolge #E9 ein é, wobei ich statt
    dem é ein E bräuchte.
    Kenn mich da aber leider nicht soweit aus das zu ändern.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Ok, Notlösung sieht jetzt so aus;



    Das bringt dann das gewünschte.
    Kann man das noch besser lösen, bzw. sind dann noch Probs mit diversen Sonderzeichen zu erwarten ?


    Vielleicht sollte ich noch ein Zeichen % welches mitten im Titel vorkommt
    auf das Wort Prozent ändern lassen ?
    Weiss nicht so recht, aber nen Titel mit % für Prozent halt in ner VdrAufnahme könnte
    schon mal möglich sein glaub ich.


    EDIT
    Hab das noch mal ganz geringfügig geändert, und das funktioniert auch,
    aber es stellt sich die Frage wenn ich eh schon tr dazu brauche warum dann nicht
    gleich mit tr festlgen welche Zeichen alle verwendet werden dürfen
    (na ja sed jedenfalls kann entfallen)



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()


  • Hätte noch einen , wegen sowas wurde wahrscheinlich tr erfunden :schiel



    LG Ronny

    Einmal editiert, zuletzt von ronnykornexl ()

  • Hi, Ronny


    Zitat

    Hätte noch einen , wegen sowas wurde wahrscheinlich tr erfunden:schiel


    Ja, das glaub ich auch, aber wenns funktioniert find ichs ganz gut.


    Danke !


    Werd das gleich mal probieren.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

  • Hi,


    Also ich hab mich nun für folgendes entschieden;


    Das klappt schon ganz gut, und liest den Namen auch nur vom Aufnahmeverzeichnis selbst wenn keine info.vdr oder darin kein T für Titel rausgegrept werden kann.


    Nun hab ich das Problem das ich das gerne kürzer hätte, hab schon mit;


    Code
    if [ ! -e $1/info.vdr -o ! `egrep -q "^T" $1/info.vdr` ]; then


    oder auch;

    Code
    if [ "$1/info.vdr" != "-e" -o "`egrep -q "^T" $1/info.vdr`" != "" ]


    und noch etliche Varianten probiert, aber das klappt einfach nicht.


    Wo happerts da ?
    Sobald ich das oder einbaue werden immer die Befehle unter der Zeile mit oder
    abgearbeitet, auch wenns aber eine info.vdr gibt.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,


    Hab nun etwas herumgepfuscht, sieht dann so aus;



    Wobei der erste Teil also if funktioniert, aber wenn keine info.vdr vorhanden ist
    oder auch kein T drinnen steht wird zwar ein /home/drei.txt erstellt, aber in dem steht nix drinnen.
    Das heisst der else Teil funkt nicht richtig


    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

  • Hi,


    Hab mich nun wieder mal ein bisschen mit der Titelübergabe (Namensübergabe)
    gespielt, und hab das auf das folgende abgeändert (mit dem ich nun zufrieden bin)



    Wobei ich die echos welche hier an drei verschiedenen Stellen
    zu sehen sind eben diese;


    Code
    echo -n "$TITEL" > /home/drei.txt
    echo -n "$DISC_ID" > /home/vier.txt


    nur zum testen eingebaut habe ( nehm ich im echten Script dann wo ich das Ganze
    Script von hier erst einbauen und testen muss raus).


    Getestet hab ich mit ner info.vdr die ich beim T auf das folgende abgeändert habe;

    Zitat

    T Ä%%Die Simp@%091äÜ0so%ns & ß §()[]",!?ß+#


    dann mal ohne info.vdr, wo der Name dann vom Verzeichnis selbst ausgelesen wird,
    wobei ich wiederum den Namen des Verzeichnisses auf folgendes geändert habe;

    Zitat

    %@ÜE[]in_#E9(üö?ßk%le,in)e§s_#5FGebetä?:!(


    und jedesmal waren im Ergebnis nur die gewünschten Zeichen zu sehen, obwohl das Ergebnis natürlich unsinnig aussieht, aber es geht ja nur darum das diverse Sonderzeichen etc.. eliminiert bzw. durch andere Zeichen ausgetauscht werden.



    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    3 Mal editiert, zuletzt von Bert ()

  • Hi,


    Ich lass den Titel ja aus der info.vdr auslesen, aber nur dann wenns da auch
    das T gibt wo ja rechts davon der Titel steht, oder wenns ne info.vdr überhaupt gibt
    (was aber vermutlich eh immer der Fall sein dürfte).


    Allerdings kommt es vor das man was aufnimmt, und der epg passt z.b: nicht
    dann steht in der info.vdr kein Titel (ok dann hat zwar das Aufnahmeverzeichnis
    auch keinen brauchbaren Titel), aber man kann ja ne Aufnahme per Fernbedienung
    umbenennen.
    Und in diesem Fall wird der Titel dann vom Aufnahmeverzeichnis selbst ausgelesen
    (nur muss man halt eben zuvor per Fb nen brauchbaren Titel eintippen, aber das hat
    schon nen gewissen Vorteil).


    Wie auch immer, ich bin auch nicht so recht zufrieden mit der Lösung, aber ich
    war einfach unschlüssig was da am besten sei (und bin das auch immer noch)


    Ich hatte auch lange überlegt den Titel nur aus dem Aufnahmeverzeichnis selbst
    auslesen zu lassen, denn da könnte man die Aufzeichnung ja zuvor bei Bedarf
    per Fernbedienung umbenennen, und so gleich von allen Sonderzeichen etc..
    befreien (dann würde das Script auch kaum mehr abbrechen).


    In der info.vdr kanns aber auch vorkommen das Sonderzeichen auftauchen
    (Umlaute sowieso) Klammern Fragezeichen etc ebenso, und
    alles in allem funktioniert das mit der Lösung so wies jetzt ist
    doch sehr gut. (hatte bisher keinen Abbruch des Scripts)


    Gruss, Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

Jetzt mitmachen!

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