Eu tenho uma string separada por vírgulas onde quero 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?
Troque os argumentos dos comandos:
echo "US,CA,CH,JP" | grep US
Dentro:
echo US | grep "US,CA,CH,JP"
você está procurando a sequência (padrão) US,CA,CH,JP
na sequência de entrada US
, que não corresponde exatamente ao esperado.
A menos que você esperasse que as vírgulas agissem como uma declaração "ou", nesse caso, você só precisa alterá-las para pipes e usar a -E
opção para expressões regulares estendidas :
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"
eu usaria $echo US | grep -i "US|CA|JP|CH"
Em vez de eco, forneça uma lista ou algo assim, onde ele pode ir e procurar padrões, em vez de procurá-los nos "EUA"
-E
.