Сценарий Bash получает/извлекает определенную информацию/слово от строки

команда nvcc - версия производит следующее:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_21:14:42_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

я пытаюсь получить cuda версию, которая в этом случае является 10.2 от 4-й строки.

Поэтому я попробовал следующее:

cudaVersion="$(nvcc --version| grep 'Cuda compilation ')"
echo "$cudaVersion"

это дает мне однако целую строку как вывод. Однако я просто хочу присвоить версию cudaVersion

, я полагаю, что это должно работать с , сокращает , однако я не могу получить его

Заранее спасибо

0
задан 17 March 2021 в 12:17

1 ответ

Я буквально ждал этого лет :

sudo apt install ./happy-at-long-last.deb

Yay!:) Это работает от APT 1,1 , которые должны быть доступны на большинстве систем к настоящему времени.

Использование dpkg регулярно вызывало у меня проблемы, в то время как apt очень хорошо подходит для автоматического разрешения зависимостей и избежания проблем. И это все еще достаточно низкий уровень, чтобы позволить сценарии и тонкую настройку...

-121--912714-

TLP будет успешно работать с любым ядром.

Отказ от ответственности: я автор TLP.

-121--908429-

Использование grep с поддержкой Perl regex ( grep -P ):

$ nvcc --version | grep -Po 'release \K\d+\.\d+'
11.2
  • -o печатает только соответствующий текст.
  • release\K ищет последовательность release , за которым следует космос, а затем исключает это из совпадения (\K ), так что в совпадающий текст включается только часть после \K .
  • Часть после \K - \d + (по крайней мере, одна цифра), за которой следует период (\. ), за которым следует по крайней мере одна цифра (\d + ), соответствующая фактическому номеру версии.
2
ответ дан 18 March 2021 в 23:24

Другие вопросы по тегам:

Похожие вопросы: