Beschreibung aus info.vdr extrahieren

  • Hallo allerseits,


    ich suche eine "Script"chen oder Einzeiler um aus der info.vdr das Beschreibungsfeld (D) zu extrahieren.



    Code
    # cat Sieben/2005-11-05.22.07.50.99.rec/info.vdr
    C T-8468-769-16403
    T Sieben
    S Sieben
    D Die Detectives David Mills und William Somerset jagen einen ebenso grausamen wie raffinierten Rit...


    Ich bin mir nicht sicher ob es legitim ist einfach per grep die Zeile die mit "D" beginnen zu verwenden, da daduch Zeilen mit Zeilenumbrüchen verloren gehen könnten.


    Also folgendes ist meiner Meinung nicht nicht vollständig :
    $ cat info.vdr | grep ^D | cut -d " " -f 2-


    Gibt eine für dieses Problem eine funktioniere Lösung ?
    Hat das jemand für vdrsync/vdrconvert schonmal gelöst ?


    Oder gibt es gar eine Patch für vdrsync um statt der summery.vdr die aktuelle info.vdr zu verwenden ?


    Fragend,
    Andreas

  • Zitat

    Original von Hulk
    Ich bin mir nicht sicher ob es legitim ist einfach per grep die Zeile die mit "D" beginnen zu verwenden, da daduch Zeilen mit Zeilenumbrüchen verloren gehen könnten.


    Siehe man 5 vdr ... Zeilenumbrüche innerhalb der Beschreibung werden durch "|" ersetzt, also:


    Code
    grep ^D info.vdr | cut -d " " -f 2- | tr '|' '\n'
  • Zitat

    Original von Greywolf
    Siehe man 5 vdr ... Zeilenumbrüche innerhalb der Beschreibung werden durch "|" ersetzt,


    Danke für diesen Hinweis,
    genau danach hatte ich gesucht,


    Ich hatte wohl nur nicht an der richtigen Stelle gesucht ...


    Cu,
    Andreas

  • Moin,

    Code
    grep -iv ^C info.vdr | grep -iv ^T | sed -e 's/^S //g' -e 's/^D /\n/g' -e 's/|/\n/g' > summary.vdr


    Wandelt eine info.vdr in eine echte summary.vdr inkl. Zeilenumbrüchen um.


    Gruss,
    Walter

    --seit 2010 kein vdr mehr in Betrieb--
    vdr 1.6.0 + eigene Patchkombination
    GNU/Linux 2.6.23.14 (Debian)
    DVB-S-Karte TT 1.6 (FF, Tuner defekt)
    DVB-S-Karte TT Budget (seit 4/09)
    DVB-T-Karte TT 1300
    DVB-T-USB-StickTerratec Cinergy T USB XE Rev. 2
    PC-Hauptplatine: MSI K8N Neo4-F, AMD 64 (seit 1/07)

  • Wie lässt sich am einfachsten der D-Eintrag um zusätzliche Informationen ergänzen?

    LG
    Jochen


    Rpi4 headless mit MLD 5.4 als Server via satip-Plugin hinter einem Telestar Digibit Twin, ein Rpi3 als Streamdev-Client mit MLD 5.4

    Rpi3 auch hinter Telestar Digibit Twin und mit MLD 5.4

  • THX, wie muss denn quotiert werden, wenn Test eine Variable ist?


    cat info.vdr | sed -e 's/^D.*/& $APPEND/g'


    substituiert ja nicht;


    cat info.vdr | sed -e "s/^D.*/& $APPEND/g"


    haut mir ein unterminated s command um die Ohren.

    LG
    Jochen


    Rpi4 headless mit MLD 5.4 als Server via satip-Plugin hinter einem Telestar Digibit Twin, ein Rpi3 als Streamdev-Client mit MLD 5.4

    Rpi3 auch hinter Telestar Digibit Twin und mit MLD 5.4

  • Folgendes Funktioniert bei mir (doublequoted, Variable ist aber ohne Leerzeichen ...)


    Bash
    #!/bin/bash
    export FOOBAR="Test"
    cat info.vdr | sed -e "s/^D.*/&1$FOOBAR/g"


    deshalb aber funktionell sicher dürfte eine Lösung mit Perl sein ....


    z.B.


    [PHP]#!/usr/bin/perl -w


    $infofile = $ARGV[0] || die "please provide a file info.vdr\n";
    $add = $ARGV[1] || die "nothing to add\n";


    open(F, $infofile) || die "$infofile: $!\n";
    while (<F>) {
    if ($_ =~ /^D/sg) { # Bei Übereinstimmung
    chomp $_; # Zeilenumbruch entfernen
    print $_; # Originalwert
    print $add; # Angefügtes
    print "\n"; # Zeilenumbruch wieder anfügen
    }
    else {
    print $_;
    }
    }[/PHP]


    Code
    $ ./test.pl "info.vdr" "Aufnahme von foobar42" > new-info.vdr



    Andreas

  • Danke schön, werde ich bei nächster Gelegenheit testen. :]

    LG
    Jochen


    Rpi4 headless mit MLD 5.4 als Server via satip-Plugin hinter einem Telestar Digibit Twin, ein Rpi3 als Streamdev-Client mit MLD 5.4

    Rpi3 auch hinter Telestar Digibit Twin und mit MLD 5.4

Jetzt mitmachen!

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