Não é possível encontrar minha entrada em string usando grep

10

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?

    
por user3544092 27.09.2016 / 10:51

3 respostas

18

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.

    
por 27.09.2016 / 10:54
14

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"
    
por 27.09.2016 / 12:50
-1

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"

    
por 27.09.2016 / 14:42

Tags