최신 패키지 버전을 얻기 위해 이 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만 사용하세요grep그리고폴리 메라 제 연쇠 반응정규식 엔진:
명령줄
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 정렬 모두에 해당됩니다. 다른 사람들도 그렇게 하는지는 모르겠습니다.