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
    1. # cat Sieben/2005-11-05.22.07.50.99.rec/info.vdr
    2. C T-8468-769-16403
    3. T Sieben
    4. S Sieben
    5. 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
    1. 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
    1. 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
    fb


    VDR 1.4.3-3 (vdr-install-script-0.9.5.8 ), VDRAdmin-AM 3.5.2 unter Debian Sarge auf ASUS A8V Deluxe mit Athlon 3000+ (Venice), TT 1.5 + Skystar2

  • 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
    fb


    VDR 1.4.3-3 (vdr-install-script-0.9.5.8 ), VDRAdmin-AM 3.5.2 unter Debian Sarge auf ASUS A8V Deluxe mit Athlon 3000+ (Venice), TT 1.5 + Skystar2

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


    Shell-Script
    1. #!/bin/bash
    2. export FOOBAR="Test"
    3. 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
    1. $ ./test.pl "info.vdr" "Aufnahme von foobar42" > new-info.vdr



    Andreas