2009-02-04 10 views

Respuesta

41

Utilice la orden interna compgen comando:

compgen -A variable | grep X 
+3

(+1) Esto también funciona con variables locales. Este compgen ha sido la revelación de hoy, creo que debería * estudiar * todos los bash builtins ... –

6

Esto debe hacerlo:

env | grep ".*X.*" 

Edit: Lo siento, parece que para X en el valor también. Esta versión sólo busca X en el nombre var

env | awk -F "=" '{print $1}' | grep ".*X.*" 

Como Pablo señala en los comentarios, si usted está buscando para las variables locales también necesita env para ser reemplazados con juego:

set | awk -F "=" '{print $1}' | grep ".*X.*" 
+1

Solo obtiene variables de entorno, no las locales. Aunque usar "set" en lugar de "env" podría funcionar. –

+0

Gracias, no sabía sobre el set, generalmente "exporto" cualquier vars que me interese, así que solo uso env. – diciu

+1

establecer también la función de impresión, no solo variables locales y variables de entorno – zhaorufei

1

más fácil podría ser hacer un

printenv |grep D.*= 

la única diferencia es que también imprime los valores de la variable.

1
env | awk -F= '{if($1 ~ /X/) print $1}' 
+0

Necesitaba obtener los valores también. Simplemente eliminando el '$ 1' de su solución, mi problema fue resuelto. Gracias. – jpbochi

3

Este buscará X sólo en nombres de variables y de salida sólo se emparejan los nombres de variables:

set | grep -oP '^\w*X\w*(?==)' 

o para facilitar la edición del patrón buscado

set | grep -oP '^\w*(?==)' | grep X 

o simplemente (tal vez más fácil de recordar)

set | cut -d= -f1 | grep X 

Si desea hacer coincidir X dentro de los nombres de variables, pero la producción en nombre = forma del valor, entonces:

set | grep -P '^\w*X\w*(?==)' 

y si desea hacer coincidir X dentro de los nombres de variables, pero solo el valor de salida, entonces:

set | grep -P '^\w*X\w*(?==)' | grep -oP '(?<==).*' 
+0

, esto debe tener en cuenta que -P puede requerir que se instale una biblioteca adicional en algunas plataformas anteriores – noonex

Cuestiones relacionadas