初始字符串是RU="903B/100ms"
,我希望從中獲得B/100ms
。使用參數擴展從Bash中刪除前導數字
目前,我已經寫:
#!/bin/bash
RU="903B/100ms"
RU=${RU#*[^0-9]}
echo $RU
因爲參數膨脹去除高達幷包括所述第一非數字字符返回/100ms
。我想在這種情況下保留第一個非數字字符。我如何通過修改上述文本來做到這一點?
初始字符串是RU="903B/100ms"
,我希望從中獲得B/100ms
。使用參數擴展從Bash中刪除前導數字
目前,我已經寫:
#!/bin/bash
RU="903B/100ms"
RU=${RU#*[^0-9]}
echo $RU
因爲參數膨脹去除高達幷包括所述第一非數字字符返回/100ms
。我想在這種情況下保留第一個非數字字符。我如何通過修改上述文本來做到這一點?
您可以使用BASH_REMATCH提取所需的匹配值:
$ RU="903B/100ms"
$ [[ $RU =~ ^([[:digit:]]+)(.*) ]] && echo ${BASH_REMATCH[2]}
B/100ms
或者正好趕上所需的部分爲:
$ [[ $RU =~ ^[[:digit:]]+(.*) ]] && echo ${BASH_REMATCH[1]}
B/100ms
假設shopt -s extglob
:
RU="${RU##+([0-9])}"
謝謝!會投票,但根據stackoverflow我的感激是暫時毫無意義,因爲我在這裏是新的;) – AASJC
@AASJC你的友善的話比一些虛擬點更有意義:) – fedorqui