ファイル内のN番目のパターンのみを置き換える方法は?

ファイル内のN番目のパターンのみを置き換える方法は?

どのように交換できますか?窒素ファイルで文字列(またはパターン)が3番目(たとえば3番目)になるようにコマンドを使用しますか  sed?私の言葉は窒素代わりにファイルに最初に表示される窒素1行の2回目の発生または1行の1回目の発生 窒素一致する行。 1行に複数回表示され、発生(一致)は単語の一部になることがあります。

例:

isファイル内で3番目に表示されるtoのみが変更されます。us

私の入力ファイルには以下が含まれています。

hai this is linux.
hai this is unix.
hai this is mac.
hai this is unchanged.

予想される出力は次のとおりです。

hai this is linux.
hai thus is unix.
hai this is mac.
hai this is unchanged.

「this」が「th」に置き換えられました。私たちを」2行目。

ベストアンサー1

完了するために使用する方がはるかに簡単ですperl

3番目の発生位置を変更するには、次の手順を実行します。

perl -pe 's{is}{++$n == 3 ? "us" : $&}ge'

3回ごとに変更してください。

perl -pe 's{is}{++$n % 3 ? $& : "us"}ge'

おすすめ記事