A âncora de limite de palavras \>
trata -
como limite.
Se você sabe que não há espaço em branco à direita, pode ancorar até o final da linha /\<srv-db$/
- para permitir espaços em branco finais, você pode modificar isso para /\<srv-db[[:blank:]]*$/
ou /\<srv-db[[:space:]]*$/
Ou use awk
e faça uma correspondência string :
awk '$NF == "srv-db"' /etc/hosts
Se você não puder necessariamente ancorar no final da linha (mesmo com espaços em branco à direita), será necessário construir uma expressão que (por exemplo) testa espaços em branco ou fim de linha (por exemplo, "limite de palavra sem hífen") por exemplo (usando o modo expressão regular estendida )
sed -En -e '/\<srv-db(\s|$)/p'
Se você pode usar perl (ou grep no modo PCRE), então possivelmente há opções mais elegantes, como
perl -ne 'print if /\bsrv-db(?![\w-])/'
ou
grep -P '\bsrv-db(?![\w-])'