![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| campos de búsqueda en un archivo | Pablo_beezo | Programación de scripts de shell y | 4 | 10-20-2008 11:52 AM |
| Cadena de búsqueda de archivos dentro y Retorno Nombre del archivo | bggibson | UNIX for Dummies Preguntas y Respuestas | 4 | 09-25-2008 06:45 AM |
| Sistema de búsqueda de dos campos | JISHA | Programación de scripts de shell y | 3 | 04-23-2008 06:16 AM |
| buscar y reemplazar los diferentes campos | tungaw2004 | UNIX for Dummies Preguntas y Respuestas | 3 | 03-29-2007 04:16 AM |
| Script de shell para volver todos los ID de archivo basado en la distribución Identificación de búsqueda | kumbhatalok | UNIX for Dummies Preguntas y Respuestas | 1 | 10-06-2006 01:53 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Búsqueda de archivo y volver 3 campos
Tengo que ser capaz de buscar un piso de archivo (valores separados por comas) para un valor específico y, a continuación, devolver los siguientes 2 campos en variables. Aquí hay una muestra de archivo:
SN, Cuenta, Ipaddress W120394YF, adam, 10.0.20.2 W394830PR, betty, 10.0.20.3 W847582TD, Charlie, 10.0.20.4 W749509AY, donna, 10.0.20.5 Ya tengo BASH código que extrae el número de serie del ordenador y lo almacena para SERIALNUM. Quiero buscar en el archivo para que SERIALNUM y regresar el próximo 2 campos en la ACCT y IPADD. Sugerencias? |
|
||||
|
Hola, Yo sugeriría a la primera lectura en el archivo entero en tres variedad, uno para la serie, uno para el usuario y otro para el ipadd. Código:
declare -a SERIAL ACCT IPADD
let count=0
while IFS=, read a b c
do
SERIAL[$count]=$a; ACCT[$count]=$b; IPADD[$count]=$c; ((count++))
done < file
Esto establece el separador de campo al interior "," y lee los tres campos separados por comas en las tres variables que son empujados a la declarada matrices. Ahora puede buscar en este arreglo como este: Código:
let i=0
while [[ $i -lt ${#SERIAL[@]} ]]
do
[[ ${SERIAL[${i}]} = W120* ]] && printf "%s %s\n" ${ACCT[${i}]} ${IPADD[${i}]}
((i++))
done
Este bucles a través de la matriz. $ (# SERIE [@]) le da el número de entradas de un array. Si un determinado SERIE se encuentra, los datos correspondientes se emiten. Chris HTH |
|
||||
|
Cita:
Código:
#!/bin/bash
USERLIST="/Users/johndoe/.bin/xBackup_users"
SRCHFOR="W8735UL8Z5V"
#
USERNAME=`awk -F "," '/W8735UL8Z5V/{print $2}' $USERLIST`
PASSWORD=`awk -F "," '/W8735UL8Z5V/{print $3}' $USERLIST`
RSYNCIP=`awk -F "," '/W8735UL8Z5V/{print $4}' $USERLIST`
#
clear
echo
echo Your account name is $USERNAME
echo Your password is $PASSWORD
echo Your IP address is $RSYNCIP
echo
exit
Para terminar esto, me gustaría utilizar la variable SRCHFOR en el comando awk y he probado varias maneras, pero no está seguro de cómo hacerlo funcionar. (Ya he separado el código que extrae el número de serie de la máquina.) Cualquier ideas finales? |
|
|||||
|
Echa un vistazo a la sugerencia anterior (de yongitz):
Cita:
|
|
||||
|
Cita:
Código:
#!/bin/bash
USERLIST="/Users/johndoe/.bin/xBackup_users"
SRCHFOR="W8735UL8Z5V"
#
USERNAME=`awk -F "," '/^'"$SRCHFOR"'/ {print $2}' $USERLIST`
PASSWORD=`awk -F "," '/^'"$SRCHFOR"'/ {print $3}' $USERLIST`
RSYNCIP=`awk -F "," '/^'"$SRCHFOR"'/ {print $4}' $USERLIST`
#
clear
echo
echo Your account name is $USERNAME
echo Your password is $PASSWORD
echo Your IP address is $RSYNCIP
echo
exit
Gracias a todos por sus ideas. |
|
||||
|
Código:
awk -F"," -v pat=$SERIALNUM '$0 ~ pat {print $2,$3}' your_flat_file.txt
Esto supone que sólo tienes un número de serie almacenado en SERIALNUM variable. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|