• Publicidad

Encontrar un término

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

Encontrar un término

Notapor alesevimor » 2012-01-31 15:57 @706

No se cómo realizar este script ¡Ayuda!

Script que sirve para encontrar un término que se pasa como argumento.

Para ejecutarlo en línea de comando de esta manera: env | mi_egrep.pl <argumento a buscar en el enviroment>

Es decir: el script actúa de egrep para después darle un argumento. Por ejemplo: PATH y así mostrar la línea de PATH.
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Publicidad

Re: Encontrar un término

Notapor explorer » 2012-01-31 16:04 @711

Bienvenido a los foros de Perl en español, alesevimor.

El problema parece sencillo, pero tiene una dificultad: por una parte tienes que leer el argumento que le pasamos, y luego leer la entrada estándar para analizar las líneas que le llegan por la ejecución de env.

Desde la línea de comandos puedes resolverlo directamente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. explorer@casa:~/Documentos/Desarrollo> env | perl -E '$x = shift; while (<>) { print if /$x/ }' PATH
  2. MANPATH=/usr/local/man:/usr/share/man
  3. XNLSPATH=/usr/share/X11/nls
  4. PATH=/home/explorer/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/sbin:/usr/sbin
  5. ALSA_CONFIG_PATH=/etc/alsa-pulse.conf
  6. WINDOWPATH=7
  7. QT_PLUGIN_PATH=/media/500_1/home/explorer/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/
  8.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Encontrar un término

Notapor alesevimor » 2012-01-31 18:22 @807

¡Muchísimas gracias! Justo lo que necesitaba. Pero yo estaba intentando, en vez de shift(), usar ARGV al ser por parámetros. ¿No es posible hacerlo así? Muchas gracias.;)
alesevimor
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2012-01-31 15:55 @705

Re: Encontrar un término

Notapor explorer » 2012-01-31 18:43 @821

La función shift(), cuando no tiene argumentos, y está fuera de una subrutina, se refiere a @ARGV, así que lo escrito antes,

$x = shift;

se podía haber escrito también así:

$x = shift @ARGV;

Pero, escribiendo más :)

Más información en perldoc -f shift
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron