
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,JP
na 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 -E
opçã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"