No puedo encontrar mi entrada en cadena usando grep

11

Tengo una cadena separada por comas donde quiero encontrar mi entrada en esa línea:

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

¡La salida está vacía! ¿Cómo debo usar grep para encontrar mi entrada en esa cadena?

usuario3544092
fuente

Respuestas:

18

Intercambie los argumentos de los comandos:

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

En:

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

está buscando la cadena (patrón) US,CA,CH,JPen la cadena de entrada US, que no coincide con lo esperado.

heemayl
fuente
14

A menos que esperara que las comas actúen como una declaración "o", en cuyo caso solo necesita cambiar las comas a canalizaciones y usar la -Eopción para Expresiones regulares extendidas :

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

O cambie las comas a caracteres de nueva línea:

echo US | grep "US
CA
CH
JP"
Jeff Schaller
fuente
-1

yo usaría $echo US | grep -i "US|CA|JP|CH"

En lugar de eco, dele una lista o algo así, donde realmente pueda ir y buscar patrones, en lugar de buscarlos en "EE. UU."

dmb
fuente
Se le olvidó -E.
reinierpost