![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| pesquisa campos dentro de um arquivo | Pablo_beezo | Programação Shell Script e | 4 | 10-20-2008 10:52 |
| Procurar por seqüência no arquivo e Retornar Nome do Arquivo | bggibson | UNIX para Dummies Perguntas & Respostas | 4 | 09-25-2008 05:45 |
| Como a procura de dois campos | jisha | Programação Shell Script e | 3 | 04-23-2008 05:16 |
| pesquisar e substituir diferentes campos | tungaw2004 | UNIX para Dummies Perguntas & Respostas | 3 | 03-29-2007 03:16 |
| Shell script para retornar todos os ID's do arquivo baseado na distribuição ID pesquisa | kumbhatalok | UNIX para Dummies Perguntas & Respostas | 1 | 10-06-2006 12:53 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Pesquisar arquivo plano e retorno 3 campos
Preciso ser capaz de procurar um arquivo plano (valores separados por vírgula) para um valor específico e, em seguida, retornar os seguintes campos em 2 variáveis. Aqui está uma amostra plana arquivo:
SN, Conta, 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á tenho BASH código que extrai o número de série do computador e guarda-a SERIALNUM. Quero pesquisar o arquivo para que SERIALNUM e retornar os seguintes campos em 2 ACCT e IPADD. Sugestões? |
|
||||
|
Oi,
Gostaria de sugerir para a primeira leitura em todo o ficheiro em três array, uma para a série, uma para o usuário e um para o 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
Agora você pode pesquisar este array 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
HTH Chris |
|
||||
|
Citação:
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
Qualquer final ideias? |
|
|||||
|
Dê uma olhada anterior sugestão (de yongitz):
Citação:
|
|
||||
|
Citação:
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
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|