Регистр указателя стека является аппаратным регистром. Он указывает на ячейку памяти *, которая находится в области, используемой для стека. Регистр указателя стека используется при адресации данных в стеке.обычно увеличение или уменьшение значения указателя до или после доступа к памяти. Проверка, которая выполняется, когда происходит системный вызов, проверяет, указывает ли регистр на действительный адрес стека. «Оппортунистически» не означает «необязательно».
[ *] :действительный адрес также может быть на единицу позже последнего адреса страницы стека на некоторых архитектурах.
Использование только GNU grep и pcre механизм регулярных выражений:
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
$ 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 подходят. Я не знаю, делают ли другие.