Sie sind nicht angemeldet.

  • »Kasashii« ist der Autor dieses Themas

Beiträge: 1

Registrierungsdatum: 28.03.2018

Derivat: Ubuntu

Version: Ubuntu 16.04 LTS - Xenial Xerus

Architektur: 64-Bit PC

Desktop: unbekannt

  • Nachricht senden

1

28.03.2018, 08:28

Bestimmten Textabschnitt auslesen und in anderer Datei suchen

Hallo,

ich habe mal wieder ein kleines Problem.

Ich lade mit dem Programm Webgrabber+ von mehreren Sender EPG-Dateien herunter. In dem Programm kann ich selbst keine Überprüfen machen ob ein Download nicht funktioniert hat. Ich habe mir jetzt überlegt in der Ausgabedatei zu prüfen ob der Sender, welche in der Config stehen, vorhanden sind. Das Problem jetzt ist, dass alle Ansätze die ich gefunden habe nicht funktionieren, da die Zeilen komplett aneinander stehen ohne Leerzeichen und ich es erst aufwändig aufgesplittet habe damit ich am Ende nur noch die Sender angezeigt bekomme.



Quellcode

1
<channel update="i" site="freeview.com.au" site_id="101305020525" xmltv_id="7flix [AUS]">7flix [AUS]</channel><channel update="i" site="freeview.com.au" site_id="101305030534" xmltv_id="7HD [AUS]">7HD [AUS]</channel><channel update="i" site="freeview.com.au" site_id="101305020523" xmltv_id="7mate [AUS]">7mate [AUS]</channel><channel update="i" site="freeview.com.au" site_id="101305020522" xmltv_id="7TWO [AUS]">7TWO [AUS]</channel>



Das nach xmltv_id=" bis "> sind die wichtigen Informationen


Quellcode

1
2
sed 's/"/" /g' WebGrab++.config.xml > 1WebGrab++.config.xmlsed 's/"/ "/g' 1WebGrab++.config.xml > 2WebGrab++.config.xmlsed 's/.*xmltv_id= " \(.*\) " >.*/\1/' 2WebGrab++.config.xml > 3WebGrab++.config.xml
tr [:blank:] "~" < 3WebGrab++.config.xml > 4WebGrab++.config.xml



So kann ich die Zeilen mit cat in ein Array schreiben, mit Leerzeichen hätte ich dann nacher 20 Elemente

Quellcode

1
2
3
file="4WebGrab++.config.xml"lines=`cat $file`
for line in $lines donewline=$(echo $line | tr "~" " ")echo $newline
if grep -w "$newline" wg++/guide_AUS_2018-03-26.xmlthen echo "Die Datei enthält $newline"else echo "Die Datei enthält $newline nicht"fi





Wenn ich jetzt allerdings nach diesen Sendern in der Ausgabedatei suche bekomme ich keine Ergebnisse, da dort auch alles zusammen geschrieben ist.


Quellcode

1
<display-name lang="en">7flix [AUS]</display-name><programme start="20180326053000 +0000" stop="20180326060200 +0000" channel="7flix [AUS]">




Gibt es noch andere Möglichkeiten das zu erledigen?

2

28.03.2018, 15:47

Quellcode

1
diff -y --color  <(sed -e 's/></>\n</g' 1WebGrab++.config.xml | sed -e 's/.*="//g; s/">.*//g') <(sed -e 's/><display-name/>\n<display-name/g' Ausgabe.txt | sed -e 's/.*="//g; s/">.*//g')
Der Einsatz von diff ist nur ein Beispiel, die Optionen kannst du nach Bedarf anpassen.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl