[Shell/Python] Bestimmtes Wort suchen und löschen/ersetzen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von romestylez, 12. Januar 2021 .

  1. 12. Januar 2021
    Zuletzt bearbeitet: 12. Januar 2021
    Aloha,

    ich habe für meinen Sat Receiver eine eigene Bouquet Datei (Senderliste.tv) erstellt. Nun musste ich die Liste in ein Bestimmtes Format bringen.

    Die Datei sieht original wie folgt aus

    Code:
    NAME TV
    #SERVICE 1:0:19:283D:3FB:1:C00000:0:0:0:
    #SERVICE 1:0:19:2B66:3F3:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF10:421:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF74:3F9:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF11:421:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF75:3F9:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF76:3F9:1:C00000:0:0:0:
    #SERVICE 1:0:19:EF15:421:1:C00000:0:0:0:
    #SERVICE 1:0:19:2B7A:3F3:1:C00000:0:0:0:
    #SERVICE 1:0:19:6EA5:4B1:1:C00000:0:0:0:
    #SERVICE 1:0:1:6DCB:44D:1:C00000:0:0:0:
    #SERVICE 1:0:19:2E9B:411:1:C00000:0:0:0:
    #SERVICE 1:832:d:0:0:0:0:0:0:0::[Hidden Marker]
    #DESCRIPTION [Hidden Marker]
    #SERVICE 1:832:d:0:0:0:0:0:0:0:
    #SERVICE 1:0:19:6E:D:85:C00000:0:0:0:
    #SERVICE 1:832:d:0:0:0:0:0:0:0::[Hidden Marker]
    #DESCRIPTION [Hidden Marker]
    #SERVICE 1:832:d:0:0:0:0:0:0:0::[Hidden Marker]
    #DESCRIPTION [Hidden Marker]
    
    Ich brauche nun aus dieser Datei lediglich die Sender-Referenzen.

    Es müssen also alle Zeilen mit

    Code:
    #DESCRIPTION [Hidden Marker]
    #SERVICE 1:832:d:0:0:0:0:0:0:0::[Hidden Marker]
    
    Und die erste Zeile mit "#NAME TV" entfernt werden. Das habe ich hinbekommen mit folgendem Code

    Code:
    sed -i -e '/#NAME TV/d' /tmp/userbouquet.picon
    Nun habe ich mit dem Zusatz

    Code:
    -e 's/#SERVICE //g'[code]
    
    in jeder Zeile "#SERVICE" gelöscht werden damit die Datei wie folgt aussieht
    
    [code]1:0:19:283D:3FB:1:C00000:0:0:0:
    1:0:19:2B66:3F3:1:C00000:0:0:0:
    1:0:19:EF10:421:1:C00000:0:0:0:
    1:0:19:EF74:3F9:1:C00000:0:0:0:
    1:0:19:EF11:421:1:C00000:0:0:0:
    1:0:19:EF75:3F9:1:C00000:0:0:0:
    1:0:19:EF76:3F9:1:C00000:0:0:0:
    1:0:19:EF15:421:1:C00000:0:0:0:
    1:0:19:2B7A:3F3:1:C00000:0:0:0:
    1:0:19:6EA5:4B1:1:C00000:0:0:0:
    1:0:1:6DCB:44D:1:C00000:0:0:0:
    1:0:19:2E9B:411:1:C00000:0:0:0:
    1:0:19:2EAF:411:1:C00000:0:0:0:
    1:0:19:2857:401:1:C00000:0:0:0:
    1:0:19:30D4:413:1:C00000:0:0:0:
    1:0:19:2B8E:3F2:1:C00000:0:0:0:
    1:0:19:2871:425:1:C00000:0:0:0:
    1:0:19:2BA2:3F2:1:C00000:0:0:0:
    1:0:1:2F30:441:1:C00000:0:0:0:
    1:0:19:283E:3FB:1:C00000:0:0:0:
    1:0:19:EF14:421:1:C00000:0:0:0:
    1:0:19:2873:425:1:C00000:0:0:0:
    1:0:19:285B:401:1:C00000:0:0:0:
    1:0:19:286F:425:1:C00000:0:0:0:
    1:0:19:2B98:3F2:1:C00000:0:0:0:
    1:0:19:151A:455:1:C00000:0:0:0:
    Nun müssen noch die ":" durch "_" ersetzt werden und die ":" hinter der letzten "0" durch ".png" ersetzt werden. Das geht mit folgenden Zusatz

    Code:
    -e 's/.$/.png/'
    [code]
    
    Der komplette sed Befehl sieht also wie folgt aus
    
    [code]
    sed -i -e '/Hidden Marker/d' -e '/#NAME TV/d' -e 's/#SERVICE //g' -e 's/:/_/g' -e 's/.$/.png/' /etc/enigma2/userbouquet.picon
    
    Nun habe ich eine Liste in diesem Format:

    Code:
    1_0_19_2E9B_411_1_C00000_0_0_0.png
    1_0_19_2EAF_411_1_C00000_0_0_0.png
    1_0_19_2857_401_1_C00000_0_0_0.png
    1_0_19_30D4_413_1_C00000_0_0_0.png
    1_0_19_2B8E_3F2_1_C00000_0_0_0.png
    1_0_19_2871_425_1_C00000_0_0_0.png
    1_0_19_2BA2_3F2_1_C00000_0_0_0.png
    1_0_1_2F30_441_1_C00000_0_0_0.png
    
    Ich muss nun diese Icons von einer bestimmten URL runterladen. Wie bekomme ich diese Liste nun ins wget damit dort dann z.B.

    Code:
    www.meinedomain.de/1_0_19_2E9B_411_1_C00000_0_0_0.png
    runtergeladen wird ?

    Kann hier jemand helfen ?
     
  2. 12. Januar 2021
    versuch mal folgendes:

    Code:
    cat urlfile.txt | parallel --gnu "wget www.site.de/{}"
    Alternativ kannst du wget -i url_liste.txt übergeben.
     
    romestylez gefällt das.
  3. 13. Januar 2021
    Zuletzt bearbeitet: 13. Januar 2021
    Gute Idee

    Ich habe mit sed einfach den Link eingesetzt und davor dann wget noch. Das bläht die Datei natürlich sehr auf.

    Habs nun umgebaut und deinen Vorschlag mit wget -i url_liste.txt umgesetzt. Funktioniert ohne Probleme
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.