sed を使用して 3 番目のパターン発生を置き換えます。

sed を使用して 3 番目のパターン発生を置き換えます。

これはsedコマンドです。00toの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

おすすめ記事