では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?}
あなたはおそらくパラメータ展開について話しているでしょう。正規表現ではなくシェルパターンを使用するため、答えはノーです。
さらに読んで、私はあなたが
shopt -s extglob
構文はわずかに異なりますが、正規表現に似たものを実現できる拡張パターン マッチングを使用できます。
これをチェックしてください:
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}