これはsed
コマンドです。00
toの3番目の項目を変更したいと思います。11
echo "0000000000000000" | sed -e 's/00/11/3'
出力は次のとおりです
0000110000000000
しかし、結果は次のようになります。
0011000000000000
初登場00
:
{00}00000000000000
第二:
0{00}0000000000000
3番目:
00{00}000000000000
何が起こっているのかを説明できる人はいますか?
ベストアンサー1
sed
正規表現パターンが一致すると、次の検索がすぐに開始されます。後ろにパターンが一致しました...必要なものを実行するには、perl
正規表現のようなものが必要です。幅0のLookaheadおよびLookBehindアサーション。
あなたの場合はサブパターン(2位 0
)は後に存在します。初めて 0
全体的なパターン。これサブモード幅がゼロのように扱われるため、パターン全体が一致すると、検索はすぐに次に始まります。初めてパターンの一部、つまり最初の0以降0
。