2017-06-29 5 views
0

Ich wurde von diesem völlig durcheinander gebracht. Ich habe ein Stück Code, das spuckt ...Zwei Arrays aus einer Textdatei

192.168.0.1=12345 
192.168.0.2=35345 
192.168.0.3=72345 
192.168.0.4=43345 

die dann in eine Textdatei geschrieben wird, zurück in ein Programm in ein Array geladen.

Gibt es eine Möglichkeit, es in 2D-Array zu teilen? Das erste D enthält die IP-Adresse, das zweite die anderen Nummern. Ich werde die IP herausfinden müssen, die mit den Zahlen später im Code verbunden ist.

Bisher habe ich dies nur haben ...

IFS=$'\r\n' GLOBIGNORE='*' command eval 'uparray=($(cat ./uptime.txt))' 

sollte ich wahrscheinlich dieses erwähnen ist auf Raspbian läuft

Antwort

1

wenn Ihre bash Version

assoziatives Array unterstützt
declare -A ip_nums 
while IFS== read ip num; do 
    ip_nums[$num]=$ip 
done <./uptime.txt 

dann retreive ip from num

echo "${ip_nums[$num]}" 

EDIT: Um die größte Zahl in der Schleife

biggest=0 
while ... 
    ... 
    if ((num>biggest)); then 
     biggest=$num 
    fi 
done ... 
+0

Derzeit ist das Skript überprüft alle Zahlen auswendig lernen und welche größer ist, ist es eine einfache Möglichkeit sehen ein assoziatives Array in diese zu integrieren. Wie kann ich nach dem Vergleich aller Zahlen und dem größten Ergebnis highip = 192.168.0.2? Wenn das zu komplex ist, werde ich eine andere Frage stellen :) – Hampkade