Ich kann nicht scheinen, mein letztes Stück herauszufinden, um meine gewünschte Ausgabe zu erreichen.awk double quote Feldtrennzeichen
Ich habe eine Datei mit vielen Einträgen wie folgt aus:
<Stats>
<RecNum>45435</RecNum>
<Date>2016/12/31</Date>
<DayofWeek>6</DayofWeek>
<Time>16:35</Time>
<Dir>Closing</Dir>
<Class>2</Class>
<SpeedSpan>1</SpeedSpan>
<TimeSpan>1</TimeSpan>
<Bucket Speed="34" Count="1"/>
<Bucket Speed="35" Count="0"/>
<Bucket Speed="36" Count="1"/>
</Stats>
ich das Datum, Zeit und Geschwindigkeit drucken möchten, wenn Count = 1 wie folgt:
2016/12/31 16:35 34
2016/12/31 16:35 36
Die nächstgelegene Ich habe kommen ist die folgende:
$ awk -F'[ <>]' 'BEGIN {d="d";t="t";} /<Date>/ {d=$3;} /<Time>/ {t=$3;} /Count="1"/ {print d "\t" t "\t" $3;}' speed.xml
Was mich gibt:
2016/12/31 16:35 Speed="34"
2016/12/31 16:35 Speed="36"
Ich habe viele verschiedene Iterationen ausprobiert, aber kann nicht scheinen, nur die Geschwindigkeitszahl ohne den Wortlaut zu bekommen. Ich habe versucht, die "als ein Feld Trennzeichen, aber es scheint nie zu funktionieren, wie erwartet.
Hatte eine awk-Lösung zu finden, aber wenn nicht, kann ich immer ein Python-Programm verwenden, um die unerwünschten Zeichen zu entfernen.
Kasse: [sub (regexp, Ersatz)] (https://www.gnu.org /software/gawk/manual/html_node/String-Functions.html) –