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?

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.


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"

-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."


Se le olvidó -E.
reinierpost
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.