![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| zoeken velden in een bestand | Pablo_beezo | Programmeren en Shell Scripting | 4 | 10-20-2008 10:52 |
| Zoek naar String binnen Bestand en Return Bestandsnaam | bggibson | UNIX voor Dummies Questions & Answers | 4 | 09-25-2008 05:45 |
| Hoe om te zoeken naar twee velden | jisha | Programmeren en Shell Scripting | 3 | 04-23-2008 05:16 |
| zoek en vervang verschillende gebieden | tungaw2004 | UNIX voor Dummies Questions & Answers | 3 | 03-29-2007 03:16 |
| Shell script om alle ID's uit het bestand op basis van de distributie-ID zoekopdracht | kumbhatalok | UNIX voor Dummies Questions & Answers | 1 | 10-06-2006 12:53 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Zoeken plat bestand en terugkeer 3 velden
Ik moet kunnen zoeken een plat bestand (comma-separated values) voor een specifieke waarde en vervolgens terug op de 2 volgende velden in variabelen. Hier is een voorbeeld van een "flat file:
SN, account, 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 Ik heb al BASH code die uittreksels de computer het serienummer en slaat deze op SERIALNUM. Ik wil zoeken in het bestand dat SERIALNUM en het rendement op de 2 volgende velden in ACCT en IPADD. Suggesties? |
|
||||
|
Hoi,
Ik stel voor om eerst te lezen in het hele bestand in drie array, een voor de serie, een voor de gebruiker en een voor de 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
Nu kunt u zoeken deze array als volgt uit: Code:
let i=0
while [[ $i -lt ${#SERIAL[@]} ]]
do
[[ ${SERIAL[${i}]} = W120* ]] && printf "%s %s\n" ${ACCT[${i}]} ${IPADD[${i}]}
((i++))
done
HTH Chris |
|
||||
|
Citaat:
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
Elke laatste ideeën? |
|
|||||
|
Neem een kijkje in de vorige suggestie (van yongitz):
Citaat:
|
|
||||
|
Citaat:
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
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|