Bash

使用正則表達式獲取最新的 pip 包版本

  • September 12, 2019

我正在嘗試解析此 pip install 的輸出以獲取最新的軟體包版本。

pip install package==
     ERROR: Could not find a version that satisfies the requirement package== (from versions: 19.2.0, 19.5.0, 19.6.1, 19.7.0, 19.7.1, 19.8.0, 19.9.0)

應該使用 bash 命令(sed、awk 或 grep)來完成。我使用 regexr.com 驗證了以下表達式,它突出顯示了給定輸出的所有版本。

(?:(\d+)\.)?(?:(\d+)\.)?(?:(\d+)\.\d+)

但我無法讓這個正則表達式與 sed/awk 一起使用。

僅使用 GNU greppcre正則表達式引擎:

命令行

pip ... |& grep -oP '.*\b\K\d+\.\d+\.\d+\b'

輸出

19.9.0

關於正則表達式的解釋

檢查regex101 解釋

以一種不太複雜的方式,如果您剛剛使用最新版本的 pip,您可以使用cut.

Pip show pip | grep Version: | cut -d' ' -f2

將導致: 19.9.0

引用自:https://unix.stackexchange.com/questions/541412