Bir karakteri bir karakter dizisiyle başka bir karakterle değiştirmek istiyorum, ancak karakter yalnızca dizenin sınırlandırılmış bir alt dizesi içinde gerçekleştiğinde. Örneğin, dize için:Bir dizgede bir karakter nasıl değiştirilir, ancak yalnızca ayrılmış bir alt dizede gerçekleşirse?
b [b] abc [abc] bbb [bbb]
Ben "b" değiştirmek istiyorum "x", ama sadece o kare içinde ise hiç parantez "[...]". Böylece, istenilen sonuç dizesi:
b [x] abc onlar benim rahatlık bölgesinde olduğu için [AXC] bbb [xxx]
Benim tercih bir sed veya bash çözüm olacaktır, ama Mac OS X için çalışacak herhangi bir çözüm iyi olurdu. Aramadan, sanki olumsuz bir bakış ve olumsuz bakış açısı kullanarak sed ile yapılabilir gibi görünüyor, ama bu özelliklerin sed'in Mac sürümünde mevcut olduğuna inanmıyorum.
Evet. @pjh bir Perl çözümü sağladı. – scolfax
Çeşitli çözümler sağlandı. Kişinin kişisel tercihlerine göre bir çözüm seçebilir. – scolfax