Use sed para substituir string, mas evite substituir quando for uma substring [duplicate]

0

Eu gostaria de realizar a substituição de strings em vários arquivos.

A string é específica, pois está no formato use module_plotting e preciso evitar a substituição ao encontrar uma string como use module_plotting_debug .

Obrigado por antecipar a (s) resposta (s)

    
por S. Carli 23.04.2018 / 12:53

1 resposta

1

Use expressões de limite de palavras:

sed 's/\<use module_plotting\>/use module_plotting_debug/'

Os padrões de largura zero \< e \> corresponderão aos limites das "palavras", ou seja, entre um caractere não palavra e um caractere de palavra com \< e entre um caractere de palavra e uma não palavra caractere com \> .

Um "caractere de palavra" é qualquer caractere alfanumérico (possivelmente levando em conta o local atual, não tenho certeza disso).

Meu re_format(7) manual diz que [[:<:]] e [[:>:]] devem ser mais portáteis, mas esses não parece funcionar com o GNU sed no meu sistema.

    
por 23.04.2018 / 13:02