정규식을 사용하여 최신 pip 패키지 버전을 얻으세요

정규식을 사용하여 최신 pip 패키지 버전을 얻으세요

최신 패키지 버전을 얻기 위해 이 pip 설치의 출력을 구문 분석하려고 합니다.

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와 함께 사용할 수는 없습니다.

답변1

덜 복잡한 방법으로 최신 버전의 pip를 사용하는 경우 cut.

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

결과는 다음과 같습니다. 19.9.0

답변2

GNU만 사용하세요그리고정규식 엔진:

명령줄

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

산출

19.9.0

정규식에 대한 참고 사항

확인하다정규 표현식 101 설명

답변3

$ echo '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)' | \
    sed -e 's/^.*versions: //; s/, /\n/g; s/)//'  | \
    sort -V | tail -n1
19.9.0

-V이를 위해서는 옵션을 이해 --version-sort하는 정렬 버전이 필요합니다. 이는 GNU 정렬과 FreeBSD 정렬 모두에 해당됩니다. 다른 사람들도 그렇게 하는지는 모르겠습니다.

관련 정보