コンテンツに/ X \ U \ 1/gでは以下である:パターンS/(?Bを )説明 - セッドに与えsedの
-B-以下
試されるSED構文。
s/\(b\?\)-/x\u\1/g
第三は、私はそれが一致する方法を知りたい出力
axxB
です。私は 'b \?'を理解できません。どういう意味ですか? '\?'ただの意味ですか?
コンテンツに/ X \ U \ 1/gでは以下である:パターンS/(?Bを )説明 - セッドに与えsedの
-B-以下
試されるSED構文。
s/\(b\?\)-/x\u\1/g
第三は、私はそれが一致する方法を知りたい出力
axxB
です。私は 'b \?'を理解できません。どういう意味ですか? '\?'ただの意味ですか?
s/regex/replacement/g
はあなたのコマンドの基本的な構造であり、あなたはここでそれについて読むことができます:
man sed | sed -n '/^\s\{7\}s\//,/exp.$/p'
をsed
はラインがラインも読み込みますので、あなたは、s///
に追加することができますオプションg
は、そこにあります最初の行だけでなく、行の中のすべての出現と一致するようにします。regex
あなたが持っている理由です:
s/regex/replacement/g
あなたregex
:
あなたはman sed
で上からヒントを読めば、あなたはそれがグループに交換可能である気づくことができます。あなたが望むなら、regex
のグループが必要で、グループの構文は\(\)
です。少なくとも、メタキャラクタは普通のバックスラッシュでエスケープする必要があります。\
。
b
魔女を探しているあなたの正規表現のグループで
もecapedする必要があると\{0,1\}
の単なる短縮形である、なぜなら与えられた繰り返し\?
で、最高1回マッチします。
あなたの正規表現に最後の文字はダッシュ-
です。
だから、\(b\?\)-
、0または1のグループb
とダッシュを探しています。あなたのreplacement
:あなたの正規表現のグループは、グループの数が続くバックスラッシュの置き換えで参照することができ
。これはあなたの\1
です。
GNU sed
を使用している間は、次の文字を大文字に変換する拡張子\u
があります。あなたが最後にあなたの交換であなたの正規表現のグループを入れているので、後3.3 The s Command
を、通常と、s///
であるため、あなたのg
フラグを、あなたは最終的にすべてのダッシュを交換大文字にそれを向けるだろう:あなたはこのここについて読むことができます文字x
。
したがって、交換はx\u\1
です。あなたが持っている理由
:??
$ echo "a-b-" | sed 's/\(b\?\)-/x\u\1/g'
axxB
'B \ - ' '-'一致もしくはます' B-'...' '貪欲にゼロまたは1時間に一致する数量詞があり、この場合、文字「b」 – Sundeep
を参照してください。https://www.gnu.org/software/sed/manual/sed.html#BRE-syntax – Sundeep
ウェブサイト – kingslayer