Você também pode fazer isso com sed
.
echo $STRING | sed -e "s/\($PATTERN\)/[]/Ig"
Desculpe se isso foi perguntado antes, mas não encontrei nada até agora.
Aqui está a coisa: eu tenho uma string e um padrão, e quero cercar o padrão dentro da string com colchetes.
Embora eu queira cercar o padrão, independentemente de ter sido correspondido com distinção entre maiúsculas e minúsculas, quero tê-lo no mesmo caso em que estava na string original.
Aqui está minha melhor tentativa até agora:
#!/bin/bash
STRING="ABCBD"
PATTERN="b"
echo $STRING | sed "s/$PATTERN/[$PATTERN]/Ig"
A saída para isso é A[b]C[b]D
. No entanto, gostaria que fosse A[B]C[B]D
.
Se o padrão for B
em vez de b
, a saída também deverá ser A[B]C[B]D
.
Se a string fosse abcbd
em vez de ABCBD
, a saída deveria ser a[b]c[b]d
para ambos os padrões B
ou b
.
Você conhece algum truque para conseguir isso? Fico feliz por qualquer ajuda.
Se você não se importa com o Perl, é:
echo $STRING | perl -pe "s/($PATTERN)/[]/ig"