7

ではgrep、疑問符を使用し?てオプションの文字を表すことができます。これは、0 回または 1 回一致する文字です。

$ foo=qwerasdf

$ grep -Eo fx? <<< $foo
f

問題は、Bash String Manipulation に同様の機能があるかどうかです。何かのようなもの

$ echo ${foo%fx?}
4

1 に答える 1

9

あなたはおそらくパラメータ展開について話しているでしょう。正規表現ではなくシェルパターンを使用するため、答えはノーです。

さらに読んで、私はあなたが

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}
于 2012-10-19T09:42:29.967 に答える