我試圖刪除使用參數擴展從字符串的結尾一些數字,如:你可以使用shell參數擴展匹配數字嗎?
export ENV=dev12
echo ${ENV##[0-9]+}
但它不工作,我無法找到如何做到這一點的谷歌什麼?有人知道嗎?
我試圖刪除使用參數擴展從字符串的結尾一些數字,如:你可以使用shell參數擴展匹配數字嗎?
export ENV=dev12
echo ${ENV##[0-9]+}
但它不工作,我無法找到如何做到這一點的谷歌什麼?有人知道嗎?
參數擴展使用水珠語法,而不是grep和其他工具使用更規範的正則表達式的語法。您還必須使用%%
,因爲##
用於前綴。
這裏沒有普通的水珠相當於你想做的事,但因爲你是使用bash
你可以可以啓用extglob和使用+([0-9])
:
shopt -s extglob
ENV=dev12
echo ${ENV%%+([0-9])}
使用bash正則表達式,你可以這樣做:
str='dev12'
[[ $str =~ ^(.*[^[:digit:]])[[:digit:]]+$ ]] && echo "${BASH_REMATCH[1]}"
dev
'$ {VAR ## ...}'中移除了來自字符串的_beginning_。要從最後刪除,請使用'$ {var %% ...}'。 – twalberg