Как НЕ заменить слово звездочкой в ​​конце? - PullRequest
0 голосов
/ 30 октября 2019

Я указываю команду ниже, чтобы найти строки, которые ТОЧНО соответствуют returnType, но команда также ищет строки, которые содержат returnType* и выполняет подстановку.

sed -e "/\<returnType\>/ s/word1/word2/" input.cpp

Каксделать команду, чтобы она игнорировала returnType*? Почему он выполняет замену на returnType*?

Я пытаюсь различить обычный returnType и указатель returnType*, и он не работает.

Буду признателен за любую помощь, спасибо.

1 Ответ

1 голос
/ 30 октября 2019

Добавьте '[^ *]' к шаблону, чтобы требовать что-либо кроме *.

sed -e "/\<returnType\>[^*]/ s/word1/word2/"

Примечание '*' не имеет специального значения как часть выражения в скобках.

...