Frage an die sed-Experten: Bearbeitung info.vdr

  • Gegeben sind die Zeilen

    Code
    T Das Geheimnis um Beethovens Haar
    S Die unglaublichen Irrfahrten einer Reliquie
    D 1994 ersteigern zwei amerikanische Beethoven-Verehrer bei


    a) Wie entferne ich die Buchstaben samt Leerzeichen am Beginn der jeweiligen Zeile?
    b) Wie füge ich nach der T- und S-Zeile jeweils eine Leerzeile ein?


    TIA

    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

  • Unsere sed Spezies haben gerade WE, aber ich versuche es mal:

    Code
    kilroy:~$ cat testsed 
    T Das Geheimnis um Beethovens Haar
    S Die unglaublichen Irrfahrten einer Reliquie
    D 1994 ersteigern zwei amerikanische Beethoven-Verehrer bei
    kilroy:~$ sed -e "s/^[TSD] //g" < testsed 
    Das Geheimnis um Beethovens Haar
    Die unglaublichen Irrfahrten einer Reliquie
    1994 ersteigern zwei amerikanische Beethoven-Verehrer bei

    Bei b) muß ich kurzfristig passen. :D


    EDIT: Wie gesagt, bin kein sed Fachmann:

    Code
    kilroy:~$ sed -e "s/^[TSD] //g;1,2s/$/\n/" testsed 
    Das Geheimnis um Beethovens Haar
    
    
    Die unglaublichen Irrfahrten einer Reliquie
    
    
    1994 ersteigern zwei amerikanische Beethoven-Verehrer bei
  • sed 's/^\([^\ ]*\ \)\(.*\)/\2/g'


    Ausgesprochen:
    ^= Anfang
    \( = Beginn 1. Begriff
    [^\ ] = kein Leerzeichen
    * = so oft wie es vorkommt
    \ = dann ein Freizeichen
    \) = Ende des ersten Begriffs


    \(.*\) Alle anderen Buchstaben als 2. Begriff


    \2 = nur den Zweiten ausgeben


    Ungetestet.


    Hannes


    robbitobbi://Scenic xB @ 866MHz/~Nexus2.1 - Budget TT 1.0 (Empfangs-VDR)
    fliewatueuet://ScenicxB @ 800MHz/~i810fb-xinelibout (Client)

  • sed -e "s/^[TSD] /\x0A/g"

    VDR1: P5b-DE, E8400, 5TB Seagate Platten, squeezevdr/xbmc Frodo 2*Cinergy-1200, TT S2-3200,G210 MultiSeat für LG-32LD420+Desktop
    VDR2: AMD 5050e, Asus m3n78-pro, 2.5'' HDD, YAVDR-0.4, PT-AX100E+26'' BilligGlotze
    Server: Seagate Dockstar mit 2.5'' HDDs für Web/Mail/File/Print/Lirc/Musik 24/7

  • Danke auch allen. Das Portal ist doch mal wieder Spitze: Keine halbe Stunde und Lösungsansätze in mehrfacher Ausfertigung. :]

    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

  • Hi,


    auch noch mal :D


    Code
    ~$ cat info.vdr
    C S19.2E-1-1101-28108
    E 9298 1152354600 1800 4E 1
    T c't magazin
    S Computer & Technik
    D * Vorsicht Kunde! Handyflatrate für 3000 Euro|* Kompakt, billig, leistungsfähig - Einsteigernotebooks im Vergleichstest|* Geht das auch einfacher? - Warum technische Geräte so kompliziert zu bedienen sind|***|Moderation: Mathias Münch
    X 1 01 deu 4:3
    X 2 03 deu stereo
    V 1152354600
    @ <epgsearch><Channel>7 - hr-fernsehen</Channel><Search timer>c't magazin</Search timer><Start>1152354420</Start><Stop>1152357300</Stop><S-ID>0</S-ID></epgsearch>


    Code
    ~$ sed -e "/^[CEXV@] .*/d;s/^T //g;s/^[SD] /\n/g" info.vdr
    c't magazin
    
    
    Computer & Technik
    
    
    * Vorsicht Kunde! Handyflatrate für 3000 Euro|* Kompakt, billig, leistungsfähig - Einsteigernotebooks im Vergleichstest|* Geht das auch einfacher? - Warum technische Geräte so kompliziert zu bedienen sind|***|Moderation: Mathias Münch
  • Zitat

    Originally posted by foobar42
    b) Wie füge ich nach der T- und S-Zeile jeweils eine Leerzeile ein?


    Code
    sed -e "/^[TS]/a\
    
    
    " testsed

    (mehrzeiliges Kommando!)


    In der leeren Zeile darf natürlich auch Text stehen, wenn du den einfügen willst, statt der leeren Zeile.


    Gruß,


    Udo

  • Zitat

    Originally posted by foobar42
    Gegeben sind die Zeilen

    Code
    T Das Geheimnis um Beethovens Haar
    S Die unglaublichen Irrfahrten einer Reliquie
    D 1994 ersteigern zwei amerikanische Beethoven-Verehrer bei


    a) Wie entferne ich die Buchstaben samt Leerzeichen am Beginn der jeweiligen Zeile?
    b) Wie füge ich nach der T- und S-Zeile jeweils eine Leerzeile ein?


    TIA


    beide aufgaben in einem schritt:

    Zitat

    perl -p -i -e 's/(.+)/$1\n/ if /^T|^S/; s/^\w\s(.+)/$1/' <inputfile> oder STDIN EOF


    nur um die "there is more than one way to do it" idee nicht untergehen zu lassen. ;)

Jetzt mitmachen!

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