[Erledigt] Textteil ersetzen bzw. löschen + if Abfrage möglich ?

  • Hi,


    Also mit;


    Code
    sed -i 's|mplayer.HideMainMenu = 0|mplayer.HideMainMenu = 1|g' /etc/vdr/setup.conf


    kann man den Textteil
    mplayer.HideMainMenu = 0
    in der /etc/vdr/setup.conf durch diesen;
    mplayer.HideMainMenu = 1
    ersetzen


    Soweit kein Problem, aber was ist wenn das;
    mplayer.HideMainMenu = 0
    gar nicht in der /etc/vdr/setup.con steht, und man dies aber trotzdem
    dann so;
    mplayer.HideMainMenu = 1
    eintragen wollte.


    Es scheint zwar kein Problem in nem Script zu sein wenn sed da dann nix findet
    (Script läuft also dennoch weiter),
    (allerdins wird dann aber mplayer.HideMainMenu = 1 auch nicht in
    die setup.conf reingeschrieben)
    Daher meine Frage;
    gibts da auch so ne Lösung wie mit der if Abfrage ?



    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

    4 Mal editiert, zuletzt von Bert ()

  • Nach sed:

    Code
    if ! egrep -q "^mplayer.HideMainMenu" /etc/vdr/setup.conf; then echo "mplayer.HideMainMenu = 1" >> /etc/vdr/setup.conf; fi

    VDR1: Gigabyte GA-M720-US3 (nVidia Corporation MCP78S [GeForce 8200]), Athlon II X2 240, 2GB RAM, Intel 82574L Gigabit, Debian Squeeze, Kernel 2.6.38.3 mit linux-media.tar.bz2 vom 20.04. 10:04, dvbhddevice fb6b1beedb72, VDR-1.7.22 (extension-Patch, 15 Plugins), epgsearch, extrecmenu, ...
    VDR2: Debian Etch, 2.6.21.3, K6-2 400, 192MB, NFS-Root, 466GiB über NFS, 1xNexus 2.1, 1xNova S, VDR-1.4.7
    Server: Debian Squeeze, 2.6.35.7, AMD X2 240e, 4GB, System: Raid1 2x500GB, Aufnahmen: Raid5 4TB + 1x 500GB, 1000MBit LAN
    Episodenlisten für epgsearch, VDRSeriesTimer

  • Das klingt doch eher nach
    [list=1]
    [*]mplayer.HideMainMenu = 1 einfügen und
    [*]mplayer.HideMainMenu = 0 löschen
    [/list=1]also

    Code
    sed -e '$ amplayer.HideMainMenu = 1' -e '/^mplayer.HideMainMenu = 0$/d' /etc/vdr/setup.conf

    Gruß,
    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • Hi.


    Ihr seid Super > Danke !


    vejoun

    Code
    if ! egrep -q "^mplayer.HideMainMenu" /etc/vdr/setup.conf; then echo "mplayer.HideMainMenu = 1" >> /etc/vdr/setup.conf; fi


    Das funktioniert schon mal super.


    Derweil sieht mein Abschnitt jetzt so aus;

    Code
    if ! egrep -q "^mplayer.HideMainMenu" /etc/vdr/setup.conf; then
    	echo "mplayer.HideMainMenu = 1" >> /etc/vdr/setup.conf
    elif egrep -q "^mplayer.HideMainMenu = 0" /etc/vdr/setup.conf; then
    	sed -i 's|mplayer.HideMainMenu = 0|mplayer.HideMainMenu = 1|g' /etc/vdr/setup.conf
    fi


    ARK

    Code
    sed -e '$ amplayer.HideMainMenu = 1' -e '/^mplayer.HideMainMenu = 0$/d' /etc/vdr/setup.conf


    Das gibt mir dann alle Einträge der setup.conf (auch dann mit dem richtigen
    Eintrag mplayer.HideMainMenu = 1 in der Shell aus, aber es wird nicht tatsächlich
    etwas in der setup.conf verändert.
    Also es bleibt in der setup.conf der Eintrag
    mplayer.HideMainMenu = 0
    bestehen.


    Hab ein bisschen mit sed -i herumprobiert, komm dabei aber auf keinen Nenner.
    Werd aus man sed noch nicht wirklich schlau.
    Wie kann ich mit deinem Befehl also die setup.conf tatsächlich ä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

    Einmal editiert, zuletzt von Bert ()

  • Würde sagen das File wir nie geändert. Lenke mit > die Ausgabe in ein Temp-File um, lösche das original und benenne das Tempfile ins Original um.

    Georgius (Ehemals Mag 128 )


    System:
    Gerade im Aufbau mit VDPAU

  • Hi, Georgius


    Danke > werd ich Heute noch tun.
    Obwohl ich ne direkte Änderung wie mit Parameter -i bevorzugen würde, da das File
    in meinem fertigen Script (wenns das mal ist) sowieso schon zuvor gesichert wird.


    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!

    Code
    sed -i -e '$ amplayer.HideMainMenu = 1' -e '/^mplayer.HideMainMenu = 0$/d' /etc/vdr/setup.conf

    sollte eigentlich funktioneren. Was passiert denn bei Dir?


    Gruß,
    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • Hi, ark


    Danke :)


    Habs grad nochmal probiert > so hauts hin.
    Muss ich wohl gestern etwas verbockt haben.


    Da ich nicht so vom Fach bin > dachte gestern das a vorm ersten mplayer.HideMainMenu = 1 also amplayer.HideMainMenu = 1
    sei ein Tippfehler > ist es aber nicht
    Ist das dann das hier > aus man sed;

    Zitat

    a\Text schreibt den Text in die Standardausgabe, bevor die nächste
    Eingabezeile gelesen wird


    Und wenn ja muss das so am Wort mplayer.HideMainMenu = 1 draufpicken (also ohne Leerzeichen) ?


    Wär super wenn du mir das noch kurz erklären könntest.


    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 ()

  • Hallo Bert,


    mit dem 'a' ist es genau so, wie Du es bereits vermutest: Der Text kommt ohne Trenner direkt dahinter. Ich verhaue mich da immer und setze erst einmal Schrägstriche... bis zum ersten Test.


    Gruß,
    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • Hi, ark


    Vielen Dank für die Info, ist gut zu wissen
    für zukünftige Scripts mit sed.


    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

Jetzt mitmachen!

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