\{x,y\}
たとえば、inがsed
できるだけ多くの文字または少ない文字と一致しようとするかどうかを知りたいと思います。
また、誰かが次の予期しない動作を私に説明できますかsed
?
echo "baaab" | sed 's/a\{1,2\}//'
bab
echo "baaab" | sed 's/a\{0,2\}//'
baaab
最初の行ではsed
欲があり、2行目では当然ではありませんが、理由はありますか?
私はGNU sedバージョン4.2.1を使用しています。
ベストアンサー1
a\{0,2\}
行の先頭の空の文字列と一致します(実際には空の文字列ですがg
指定されていません)。
$ echo "baaab" | sed 's/a\{0,2\}/y/'
ybaaab
GNUはsed
左から右に一致し、グローバル置換が指定されていないため、行の先頭のみが一致します。以下を使用した場合g
:
$ echo "baaab" | sed 's/a\{0,2\}/y/g'
ybyyby
先頭と末尾の空の文字列と残りの部分aa
と一致しますa
。