Muster mit dem Bash-Tool extrahieren

Muster mit dem Bash-Tool extrahieren

(a) 0.2.0-123-g9e17591

(b) 0.2.0-g9e17591

  1. Wie erhält man 0.2.0-123 bzw. 0.2.0?
  2. So extrahieren Sie die Zahlen 0 und 123 aus „0.2.0-123-g9e17591“ und 2 und 0 aus „0.2.0-g9e17591“

Antwort1

Du könntest benutzen

$ IFS='-' read -ra PARTS <<< 0.2.0-123-g9e17591
$ echo ${PARTS[*]}

um den String in ein Array aufzuteilen PARTS, mit -als Feldtrennzeichen, und dann die Ergebnisse zu überprüfen.

Dann könnten Sie ähnlich mit dem ersten Element des Arrays fortfahrenPARTS

$ IFS='.' read -ra PARTS2 <<< ${PARTS[0]}
$ echo ${PARTS2[*]}

Wiederholen Sie den Vorgang nach Bedarf.

Quellen

  1. https://stackoverflow.com/questions/918886/wie-teilt-ich-eine-zeichenfolge-an-einem-trennzeichen-in-bash
  2. http://www.masteringunixshell.net/qa3/bash-how-to-echo-array.html
  3. https://stackoverflow.com/questions/15685736/wie-extract-a-particular-element-from-an-array-in-bash

verwandte Informationen