(
não é um caractere especial em expressões regulares sed. Você não precisa escapar disso.
sed -e 's/jQuery(function/head.ready(function/g'
[(]
em um regex significa um conjunto de caracteres contendo apenas um elemento, (
. É uma maneira complicada de escrever (
.
[(]
no texto de substituição significa os três caracteres [(]
. Os colchetes não têm significado especial no texto de substituição.
Você pode evitar repetir o nome da função, se quiser, colocando-o em um grupo. Grupos são delimitados por parênteses de barra invertida.
sed -e 's/jQuery(\(function\)/head.ready(/g'
Tenha em atenção que a sua substituição também afetará jQuery(functionwithsuffix
. A maneira fácil de evitar isso é usar uma ferramenta que entende expressões regulares Perl estendidas, para que você possa usar (?![^A-Za-z0-9_])
no final da string de pesquisa, o que significa “seguido por algo que não é um caractere alfanumérico”. Observe que, nas expressões regulares do Perl, (
é especial, você precisa prefixá-lo com uma barra invertida.
perl -pe 's/jQuery\(function(?![^A-Za-z0-9_])/head.ready(function/g'
perl -pe 's/jQuery\((function)(?![^A-Za-z0-9_])/head.ready($1/g'