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 está correspondendo esperada.
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?
A menos que você esteja esperando que as vírgulas atuem como uma instrução "ou", nesse caso, você só precisará alterar as vírgulas para pipes e usar a opção -E
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, dê uma lista ou algo do tipo, onde ele pode realmente procurar padrões, em vez de procurá-los em "EUA"
Tags grep