Ein Hallo ins Forum,
ich habe folgende Herausforderung: auf meinem Router lasse ich YAMon3 laufen, ein Netzwerkanalyse-Hilfsmittel. Dort wird eine Teilnehmerliste der Netzwerkgeräte erstellt, in folgender Form (alle MACs sind frei erfunden):
Datei-neu.txt
ud_a({"mac":"16:9b:9f:d3:45:a7","ip":"192.168.0.126","ip6":"","owner":"Unknown","name":"New Device-02","colour":"","added":"2022-01-24 11:05:15","updated":"2023-02-23 13:31:27","last-seen":"2022-01-24 11:05:15"}) ud_a({"mac":"88:1a:a1:06:c1:65","ip":"192.168.0.124","ip6":"","owner":"Unknown","name":"New Device-03","colour":"","added":"2022-01-24 11:05:15","updated":"2023-02-27 23:57:18","last-seen":"2022-01-24 11:05:15"})
in der Vergangenheit habe ich die MAC-Adressen schon einmal zugeordnet und in einer anderen Datei in der Form, ähnlich dieser: Datei-alt.txt
ud_a({"mac":"16:9b:9f:d3:45:a7","ip":"192.168.0.168","ip6":"","owner":"AndrIVA","name":"iPhone","colour":"","added":"2021-12-02 09:52:38","updated":"2021-12-02 09:52:38","last-seen":"2021-12-02 09:52:38"}) ud_a({"mac":"88:1a:a1:06:c1:65","ip":"192.168.0.124","ip6":"","owner":"AndreaS","name":"Apple-TV","colour":"","added":"2021-12-02 22:10:39","updated":"2021-12-02 22:10:39","last-seen":"2021-12-02 22:10:39"})
Das Skript auf dem Router zerschießt mir gelegentlich meine Ordnung und da ist mein Plan ein einfaches bash zu bauen. Mittels sed, grep, cut, awk und Konsorten, welches in der Datei-neu.txt einen String sucht - hier bspw. eine MAC-Adresse, anschließend in die Datei-alt.txt nachschaut und von dort dann den String ab der gesuchten MAC-Adresse bis bspw. zum Muster "colour" den Inhalt übernimmt und in die Datei-neu.txt ersetzt.
Wie würdet ihr das machen?
Mein Ansatz ist aktuell: Datei-alt.txt soweit mit sed zerlegen, dass ich pro Zeile dann stehen habe:
16:9b:9f:d3:45:a7","ip":"192.168.0.168","ip6":"","owner":"AndrIVA","name":"iPhone" 88:1a:a1:06:c1:65","ip":"192.168.0.124","ip6":"","owner":"AndreaS","name":"Apple-TV"
Anschließend würde ich in Datei-neu.txt jeweils nach der MAC suchen und dann die Anweisung geben wollen, aus der umgewandelten Datei-alt.txt die komplette Zeile der dort jeweils am Zeilenanfang gefundenen MAC in die Datei-neu.txt zu übernehmen.
Hat jemand eine zündende Idee, wie ich das mache?
Grüße /dafosy