ヘッダー
たぶんこれを変換したいかもしれません:
aaaa
到着する:
1aaa1
したがって、次のように提案してみましょう。
echo aaaa | sed --regexp-extended 's/(.*)a/1\11/'
→
1aaa1
質問
1\11
100%有効で明確なパターンですかsed
?sed
このタイプの置換のすべてのベストプラクティスに従いましたか?
私の言葉は1\11
おそらくおそらく両方があります:
- charに置き換えて
1
から1°一致グループ、次に別のcharに置き換えます1
(→現在の動作) - 文字に変更した
1
後11° 一致グループ(→例外発生)
現在私のsedバージョンに最初の説明があるようです。とにかく、これが文書化されているのか、それとも.NETで可能なのかわかりませんsed
。
説明していただきありがとうございます。同時に、私はこれの上に城を建てません。
現在私はGNU sed 4.7を使用しています。
ベストアンサー1
@QuartzCristalユーザーが言ったように、GNUのマニュアルページsed
には次のメモがあります。
s/正規表現/交換/
パターン空間と正規表現を一致させてください。成功すると、交換と一致する部分が交換されます。代替項目には、パターン空間の一致する部分を表す特殊文字&、正規表現で一致する対応するサブ式を表す特殊エスケープ文字\ 1〜\ 9を含めることができます。
1
Perlのような一般的なプログラミング言語から来たので、そのような制限がないことを知りませんでした9
(例えば、私が書くことができるからです1{$19}1
)sed
。したがって、構文は現在100%正確で異なる方法で解釈できないことがわかります。
この答えはGNU sedで動作します。 POSIX定義かどうかはわかりません。