Извлечь два целых числа из одной строки и присвоить их отдельным переменным

однострочное решение, добавьте следующую строку в ваш.bashrc

alias tab_name='read -p "Name to Assign:" tabname ;  printf "\e]2;$tabname\a" '

теперь введите имя вкладки _в терминале, т.е.

user:~$ tab_name  
Name to Assign: ( type desired name here! )

Готово

2
02.03.2021, 06:20
2 ответа

Если вы знаете, что в строке нет другого текста, то

IFS=' /' read -r result first second <<<"$line"

declare -p first second

выходы

declare -- first="23"
declare -- second="200"

Если вы не знаете, сколько другого текста находится в строке, я бы использовал регулярное выражение:

if [[ $line =~ ([0-9]+)/([0-9]+) ]]; then
    first=${BASH_REMATCH[1]}
    second=${BASH_REMATCH[2]}
fi
1
18.03.2021, 22:27

в bash это работает:

{ read aa; read bb; } < <(echo "Result: 23/200." | grep -o -E '[0-9]+')

, после чего echo aa=$aa bb=$bb.дает ожидаемый результат.

0
18.03.2021, 22:27

Теги

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