The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Suche Felder innerhalb einer Datei Pablo_beezo Shell Programmierung und Scripting 4 10-20-2008 11:52 AM
Suche nach String in die Datei-und Zurück Dateiname bggibson UNIX for Dummies Questions & Answers 4 09-25-2008 06:45 AM
Wie die Suche nach zwei Feldern jisha Shell Programmierung und Scripting 3 04-23-2008 06:16 AM
Suchen und Ersetzen verschiedenen Bereichen tungaw2004 UNIX for Dummies Questions & Answers 3 03-29-2007 04:16 AM
Shell-Skript, um alle die ID's aus der Datei auf der Grundlage der Verteilung ID Suche kumbhatalok UNIX for Dummies Questions & Answers 1 10-06-2006 01:53 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-17-2008
da2357 da2357 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Suche Wohnung Datei und zurück 3 Felder

Ich in der Lage sein müssen, um eine flache Datei (Komma-separierte Werte) für einen bestimmten Wert und dann die folgenden 2 Felder in Variablen. Hier ist ein Beispiel flache Datei:

SN, Konto-, IP-Adresse
W120394YF, Adam, 10.0.20.2
W394830PR, Betty, 10.0.20.3
W847582TD, charlie, 10.0.20.4
W749509AY, Donna, 10.0.20.5

Ich habe bereits BASH-Code, der Auszüge des Computers Seriennummer und speichert sie auf SERIALNUM. Ich möchte das Dateisystem für die Rückkehr SERIALNUM und die folgenden 2 Felder in ACCT und IPADD. Anregungen?
  #2 (permalink)  
Old 11-17-2008
in2nix4life's Avatar
in2nix4life in2nix4life is offline
Registrierte Nutzer
  
 

Join Date: Oct 2007
Ort: East Coast
Beiträge: 58
Mit awk davon können Sie in die richtige Richtung:

serialnum \u003d `awk-F", " '/ W394830PR / (print $ 1)' Datei`
Konto \u003d `awk-F", " '/ W394830PR / (print $ 2)' Datei`
IPAddress \u003d `awk-F", " '/ W394830PR / (print $ 3)' Datei`
  #3 (permalink)  
Old 11-18-2008
Christoph Spohr Christoph Spohr is offline
Registrierte Nutzer
  
 

Join Date: Sep 2008
Beiträge: 205
Hi,

Ich würde vorschlagen, die erste in der gesamten Datei in drei Array, eine für die serielle, eine für den Benutzer und eine für die 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
Hier wird die interne Feld-Separator zu "," und liest die drei Komma getrennte Felder in den drei Variablen, die sich gedrängt in der angegebenen Arrays.

Jetzt können Sie dieses Feld wie folgt aus:

Code:
let i=0 
while [[ $i -lt ${#SERIAL[@]} ]] 
do 
  [[ ${SERIAL[${i}]} = W120* ]] && printf "%s %s\n" ${ACCT[${i}]} ${IPADD[${i}]} 
  ((i++)) 
done
Diese Schleifen durch das Array. $ (# SERIAL [@]) gibt die Anzahl der Einträge eines Arrays. Wenn eine bestimmte SERIAL gefunden wird, die entsprechenden Daten werden ausgegeben.

HTH Chris
  #4 (permalink)  
Old 11-18-2008
da2357 da2357 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Zitat:
Zitat von in2nix4life View Post
Mit awk davon können Sie in die richtige Richtung:

serialnum \u003d `awk-F", " '/ W394830PR / (print $ 1)' Datei`
Konto \u003d `awk-F", " '/ W394830PR / (print $ 2)' Datei`
IPAddress \u003d `awk-F", " '/ W394830PR / (print $ 3)' Datei`
Große (und Dank), das hat mich 99% gibt. Hier ist ein Ausschnitt von dem, was ich habe, mit Ihrer Idee:

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
Zum Schluss möchte ich lieber die variable Nutzung SRCHFOR in der awk Befehl, und ich habe versucht es mehrere Möglichkeiten, aber nicht sicher sind, wie man es an die Arbeit. (Ich habe bereits separaten Code, extrahiert die Seriennummer aus der Maschine.)

Jede Ideen?
  #5 (permalink)  
Old 11-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dezember 2007
Ort: Haus der 17-Weltmeister Boston Celtics
Beiträge: 1311
Wink

Werfen Sie einen Blick auf Vorschlag zurück (von yongitz):
Zitat:
awk-F ","-v \u003d $ pat SERIALNUM '$ 0 ~ pat (print $ 2, $ 3)' your_flat_file.txt
Sie müssen eine Variable für den Einsatz in awk, wie oben getan. Die-v sagt, um eine Variable, und der zugeordnet ist pat, und es ist gleich $ SERIALNUM. Sie müsste, das Gleiche zu tun für Ihre SRCHFOR unterschiedlich. Dann können Sie Pat (oder andere Namen, den Sie zuweisen) innerhalb von awk für Ihre passender.
  #6 (permalink)  
Old 11-18-2008
da2357 da2357 is offline
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Zitat:
Zitat von da2357
Jede Ideen?
Eureka, I found it!

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
Vielen Dank an alle für Ihre Ideen.
  #7 (permalink)  
Old 11-18-2008
yongitz yongitz is offline
Registrierte Nutzer
  
 

Join Date: Apr 2008
Location: Germany
Beiträge: 68
Code:
awk -F"," -v pat=$SERIALNUM '$0 ~ pat {print $2,$3}' your_flat_file.txt
Dies setzt voraus, dass Sie nur noch eine serielle Zahl in SERIALNUM variabel.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 12:06 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0