[solved] AWK / SED Stringfilter ( divider **:**:** ;print divider)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
speefak
Beiträge: 532
Registriert: 27.04.2008 13:54:20

[solved] AWK / SED Stringfilter ( divider **:**:** ;print divider)

Beitrag von speefak » 19.01.2019 12:17:15

Hallo, ich suche nach einer Möglichkeit wie ich alles vor der Angabe der Zeit ( XX:XX:XX ) filtern kann. Vom Prinzip her sowas:

Code: Alles auswählen

echo "1 Jan 2000 01:00:00 foo bar | awk  -F '**:**:** ' '{printf $1}'     =>  1 Jan 2000 01:00:00
echo "2000-01-01 01:00:00 foo bar | awk  -F '**:**:** ' '{printf $1}'     =>  2000-01-01 01:00:00
echo "Sa 1. Jan 01:00:00 foo bar | awk  -F '**:**:** ' '{printf $1}'     =>  Sa 1. Jan 01:00:00 01:00:00
könnte auch mit sed funktionieren ...
Zuletzt geändert von speefak am 19.01.2019 17:43:37, insgesamt 2-mal geändert.

tobo
Beiträge: 2336
Registriert: 10.12.2008 10:51:41

Re: AWK Stringfilter

Beitrag von tobo » 19.01.2019 12:34:49

Mit sed:

Code: Alles auswählen

sed 's/\([0-9]\{2\}:\)\{2\}[0-9]\{2\}.*$//'
Entfernt das Zeitformat und den Rest der Zeile.

Benutzeravatar
speefak
Beiträge: 532
Registriert: 27.04.2008 13:54:20

Re: AWK Stringfilter

Beitrag von speefak » 19.01.2019 16:05:44

fast ;)

ich benötige aber den von sed entfernten string in der Ausgabe, alles NACH 01:00:00 soll entfernt werden

tobo
Beiträge: 2336
Registriert: 10.12.2008 10:51:41

Re: AWK Stringfilter

Beitrag von tobo » 19.01.2019 16:26:19

Achso, das da oben (mit Ausnahme von Zeile 3) war die erhoffte Ausgabe. Sowas dann?

Code: Alles auswählen

sed 's/\(\([0-9]\{2\}:\)\{2\}[0-9]\{2\}\).*$/\1/'


Antworten