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}