大文字と小文字を区別せずに検索中にパターンを変更せずに中央に配置

大文字と小文字を区別せずに検索中にパターンを変更せずに中央に配置

以前にこの質問を受けたことがある場合は申し訳ありません。しかし、これまで何も見つかりませんでした。

問題は次のとおりです。文字列とパターンがあり、文字列内のパターンを角かっこで囲みたいです。

大文字と小文字を区別するかどうかにかかわらず、パターンを囲みたいのですが、元の文字列と同じ大文字と小文字が必要です。

これはこれまで最高の試みです。

#!/bin/bash

STRING="ABCBD"
PATTERN="b"

echo $STRING | sed "s/$PATTERN/[$PATTERN]/Ig"

A[b]C[b]Dしかし、私はそれがA[B]C[B]D

モードBでない場合は、b出力も必要ですA[B]C[B]D

文字列でない場合、abcbd出力ABCBDa[b]c[b]dパターンBまたはでなければなりませんb

これを達成する方法を知っていますか?どんな助けでも受けたいです。

答え1

sedあなたもこれを行うことができます。

echo $STRING | sed -e "s/\($PATTERN\)/[\1]/Ig"

答え2

Perlが気に入らない場合は、次のようになります。

echo $STRING | perl -pe "s/($PATTERN)/[\1]/ig"

関連情報