![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| les champs de recherche dans un fichier | Pablo_beezo | De programmation et de script Shell | 4 | 10-20-2008 11:52 AM |
| Recherche de cordes et de retour au sein du fichier Nom du fichier | bggibson | UNIX pour les nuls Questions et réponses | 4 | 09-25-2008 06:45 AM |
| Comment faire une recherche de deux domaines | JISHA | De programmation et de script Shell | 3 | 04-23-2008 06:16 AM |
| rechercher et remplacer les différents domaines | tungaw2004 | UNIX pour les nuls Questions et réponses | 3 | 03-29-2007 04:16 AM |
| Shell script pour renvoyer tous les ID de fichier basé sur la distribution ID de recherche | kumbhatalok | UNIX pour les nuls Questions et réponses | 1 | 10-06-2006 01:53 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Recherche de fichiers plats et de retour 3 champs
Je dois être capable de rechercher un fichier plat (comma-separated values) pour une valeur spécifique, puis retourner le texte suivant 2 champs dans les variables. Voici un exemple de fichier plat:
SN, compte 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 J'ai déjà BASH code qui extrait le numéro de série de l'ordinateur et les stocke pour SERIALNUM. Je veux faire des recherches sur le fichier pour que le retour SERIALNUM et après 2 champs de l'ACCT et IPADD. Suggestions? |
|
||||
|
Salut,
Je dirais d'abord lire le fichier en trois tableaux, un pour la série, l'un pour l'utilisateur et un pour le ipadd. Code:
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
Maintenant vous pouvez rechercher ce tableau comme ceci: Code:
let i=0
while [[ $i -lt ${#SERIAL[@]} ]]
do
[[ ${SERIAL[${i}]} = W120* ]] && printf "%s %s\n" ${ACCT[${i}]} ${IPADD[${i}]}
((i++))
done
HTH Chris |
|
||||
|
Citation:
Code:
#!/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
Toute final idées? |
|
|||||
|
Jetez un coup d'oeil aux précédentes suggestion (de yongitz):
Citation:
|
|
||||
|
Citation:
Code:
#!/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
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|