4
使用grep
,可以使用問號?
來表示可選字符,即一個要匹配0或1次的字符。字符串操作,可選字符
$ foo=qwerasdf
$ grep -Eo fx? <<< $foo
f
問題是Bash String Manipulation有類似的功能嗎?像
$ echo ${foo%fx?}
使用grep
,可以使用問號?
來表示可選字符,即一個要匹配0或1次的字符。字符串操作,可選字符
$ foo=qwerasdf
$ grep -Eo fx? <<< $foo
f
問題是Bash String Manipulation有類似的功能嗎?像
$ echo ${foo%fx?}
東西,你很可能在談論parameter expansion。它使用shell模式,而不是正則表達式,所以
的答案是沒有
。
經過進一步的閱讀中,我注意到,如果你
shopt -s extglob
可以使用extended pattern matching可以實現類似於用正則表達式的語法稍有不同的東西,雖然。
檢查了這一點:
word="mre"
# this returns true
if [[ $word == m?(o)re ]]; then echo true; else echo false; fi
word="more"
# this also returns true
if [[ $word == m?(o)re ]]; then echo true; else echo false; fi
word="mooooooooooore"
# again, true
if [[ $word == m+(o)re ]]; then echo true; else echo false; fi
工程與參數擴展也
word="noooooooooooo"
# outputs 'nay'
echo ${word/+(o)/ay}
# outputs 'nayooooooooooo'
echo ${word/o/ay}