Não consigo encontrar minha entrada em string usando grep

Não consigo encontrar minha entrada em string usando grep

Tenho uma string separada por vírgulas onde desejo encontrar minha entrada nessa linha:

echo US | grep "US,CA,CH,JP"

A saída está vazia! Como devo usar o grep para encontrar minha entrada nessa string?

Responder1

Troque os argumentos dos comandos:

echo "US,CA,CH,JP" | grep US

Em:

echo US | grep "US,CA,CH,JP"

você está procurando a string (padrão) US,CA,CH,JPna string de entrada US, que não corresponde ao esperado.

Responder2

A menos que você esperasse que as vírgulas funcionassem como uma declaração "ou", nesse caso você só precisa alterar as vírgulas para barras verticais e usar a -Eopção paraEstendidoexpressões regulares:

echo US | grep -E "US|CA|CH|JP"

Ou altere as vírgulas para caracteres de nova linha:

echo US | grep "US
CA
CH
JP"

Responder3

eu usaria$echo US | grep -i "US|CA|JP|CH"

Em vez de eco, dê-lhe uma lista ou algo assim, onde ele pode realmente ir e procurar padrões, em vez de procurá-los em "EUA"

informação relacionada