Ich versuche, die Zeit mit Bash aus einem String zu extrahieren, und es fällt mir schwer, das herauszufinden.
Meine Zeichenfolge ist wie folgt:
US/Central - 10:26 PM (CST)
Und ich möchte das 10:26
Teil extrahieren .
Kennt jemand einen Weg, dies nur mit Bash zu tun - ohne sed, awk usw. zu verwenden?
Wie in PHP würde ich verwenden - nicht der beste Weg, aber es funktioniert - so etwas wie:
preg_match( ""(\d{2}\:\d{2}) PM \(CST\)"", "US/Central - 10:26 PM (CST)", $matches );
Vielen Dank für jede Hilfe, auch wenn die Antwort sed oder awk verwendet
sed
Version, wollte aber andere warnen,sed
die nicht unbedingt+
Modifikator benötigen. Eine Möglichkeit, dies zu{1, }
umgehen, besteht darin, einen oder mehrere Modifikatoren zu verwenden.quelle
-n
dann das Drucken mit erneut anfordern/p
? Wäre es nicht dasselbe, die-n
Flagge und die/p
Richtlinie wegzulassen ? Vielen Dank.Schnelle, schmutzige, regexfreie Chop-Chop-Technik mit geringer Robustheit
quelle
| read zone dash time apm zone
funktioniert auchWenn deine Zeichenfolge ist
dann
wird den Job machen.
quelle
cut -c14-18
natürlich nur solange sich die Charakterposition nicht ändert. Dies sollte nicht passieren, wenn die Zeitzone festgelegt ist.