Удалите первые цифры из строки с помощью Bash, используя расширение параметра
Начальная строка RU="903B/100ms"
из которого я хочу получить B/100ms
,
В настоящее время я написал:
#!/bin/bash
RU="903B/100ms"
RU=${RU#*[^0-9]}
echo $RU
который возвращается /100ms
поскольку расширение параметра удаляет вплоть до первого нечислового символа. Я хотел бы сохранить первый нечисловой символ в этом случае. Как бы я сделал это, внеся изменения в приведенный выше текст?
3 ответа
Решение
Вы можете использовать BASH_REMATCH, чтобы извлечь желаемое значение соответствия:
$ RU="903B/100ms"
$ [[ $RU =~ ^([[:digit:]]+)(.*) ]] && echo ${BASH_REMATCH[2]}
B/100ms
Или просто поймать нужную часть как:
$ [[ $RU =~ ^[[:digit:]]+(.*) ]] && echo ${BASH_REMATCH[1]}
B/100ms