Você deseja que -o
(mostre apenas a string correspondente) e -w
(corresponda somente com o padrão como um todo)
$ echo "asjhdhahsjdajhsdabcasjdhas abc asdasdabc" | grep -ow abc
abc
Obrigado ao steeldriver por explicar como você pode realmente usar o <
e >
em vez de -w
para indicar limites de palavras. Eles devem ser \<
e \>
, mas as barras invertidas devem ser citadas para serem passadas para o grep, bem como os símbolos <
, pois eles também têm um significado especial para o shell. Então, cite bem a expressão assim:
echo "asjhdhahsjdajhsdabcasjdhas abc asdasdabc" | grep -o '\<abc\>'
ou enlouqueça com as barras invertidas:
echo "asjhdhahsjdajhsdabcasjdhas abc asdasdabc" | grep -o \\<abc\\>