、あなたが実行してすべての一致を置き換えることができます。正規表現の特定の範囲だけをsedと置き換えるにはどうすればよいですか? SEDで
sed 's/match/replace/g'
それとも行うことによってのみ、N番目のマッチを置き換えることができます。
sed 's/match/replace/N'
をそして、これら二つを組み合わせること、不特定の行動を持っている(ただし、置き換えられますが
sed 's/match/replace/gN'
しかし< = N番目の一致または特定の範囲を置き換えるために、どのような方法があります:> = N番目)は、少なくともバッシュに一致します一致します(N からN など)? Perlのようなものが必要ですか?行が一致が含まれている場合はカウンタとして機能する行の最後にいくつかの文字列を追加し、
sed '/a/{s/$/####/;:l;s/a/x/3;:t;tt;s/#//;tl}'
:
aaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbb
さて、これを試してみてください。
'= N番目の一致を置換する 'はsed実装[GNU sed](https://stackoverflow.com/documentation/sed/1096/substitution/15518/pattern-flags-occurrence-replacement#t)に依存します。 = 201702090147396732356)はこれを文書化しています...正規表現ツールが 'N1からN2へ'をサポートしているかどうかはわかりません – Sundeep