Suchstring für Wert nach 4ten Beistrich - sh skript

Support-Forum für deutschsprachige Benutzer

Moderator: karlchen

Forum rules
Topics in this forum are automatically closed 6 months after creation.
Locked
Donaufisch

Suchstring für Wert nach 4ten Beistrich - sh skript

Post by Donaufisch »

Hallo,
ich muss aus einer Textdatei aus einer Zeile den Wert nach dem 4ten Beistrich suchen und als Variable speichern. Ursprünglich ziehe ich mit "gcom" eine Ausgabe eines USB LTE Modems in eine Textdatei. Diese durchsuche ich nach einer Zeile und gebe das Ergebnis in eine 2te Datei aus.
aus dem ursprünglichen Text:
AT^HFREQINFO?

^HFREQINFO:0,6,7,3350,26800,20000,21350,25600,20000

OK


kann ich mit sed -ne '/^^HFREQINFO:/p' /root/fre.log > /root/out.log
alle Zahlen mit Beistrich extrahieren.
Ergebnis:
^HFREQINFO:0,6,7,3350,26800,20000,21350,25600,20000

Aus dieser Zeile muss ich den 5ten Wert, bzw. den Wert nach dem 4ten Beistrich auswählen und als int Variable weiter verarbeiten. In diesem Beispiel "26800". Der Wert schwankt jedoch von Messung zu Messung. Auch die anderen Werte sind variabel.

Wie kann ich diesen variablen Wert extrahieren? Der Wert ändert sich, daher ist eine exakte Suche nicht möglich! Die Struktur ist jedoch immer gleich. Daher suche ich den Wert nach dem 4ten Beistrich!
Der Wert soll als variable "aktFreq" gespeichert werden und wird in einem sh Skript weiter verarbeitet.

vielleicht kann man meinen "sed -ne" Befehl gleich erweitern bzw mit der weiteren Suche verknüpfen, sodaß ich das Ergebnis gleich aus der ursprünglichen Textdatei extrahieren kann.
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
rene
Level 20
Level 20
Posts: 12212
Joined: Sun Mar 27, 2016 6:58 pm

Re: Suchstring für Wert nach 4ten Beistrich - sh skript

Post by rene »

Ich wuerde dafur awk einsetzen:

Code: Select all

aktFreq=$(awk -F, '/^\^HFREQINFO:/ { print $5 }' ORIGINAL)
oder gleich

Code: Select all

aktFreq=$(gcom ... | awk -F, '/^\^HFREQINFO:/ { print $5 }')
Locked

Return to “Deutsch - German”