O comando s/// espera que o parâmetro "search" seja uma expressão regular . A maioria das versões de sed deve suportar a correspondência \b , que é uma correspondência de largura zero em uma palavra não-palavra-chave ou em um limite de borda da palavra. "Word" neste caso é definido como um caractere que é uma letra, dígito ou sublinhado ( _ ). Por exemplo, se assumirmos que a string c++ está sozinha em uma linha em seu arquivo, \b corresponderia às seguintes posições:
- Imediatamente antes do
c. - Entre o
ce o primeiro+. - Imediatamente após o último
+.
O comando a seguir deve fornecer os resultados desejados:
sed -i 's/\bhi\b/hotel/g' hi.txt
A palavra this não corresponderá porque o h é precedido por um caractere de palavra ( t ) e o i é seguido por um caractere de palavra ( s ). No entanto, a seqüência de caracteres This is hi.txt corresponderá à segunda instância de hi , porque o espaço ao redor e . são caracteres não pertencentes à palavra.