Sortieren Frage
- SledgeHammer
- Beiträge: 175
- Registriert: 10.08.2003 17:32:04
Sortieren Frage
ch will eine Liste sortieren, die folgendermaßen aussieht
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
....
...
ich möchte das ganze geornet haben nach der zweiten spalte so solte es dann aussehn
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.5 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
....
...
Wie mache ich das am besten unter Linux ?
gruß Dennis
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
....
...
ich möchte das ganze geornet haben nach der zweiten spalte so solte es dann aussehn
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.5 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
....
...
Wie mache ich das am besten unter Linux ?
gruß Dennis
Oder viel besser als ein RTFM Link hier:
wenn sort.in so aussieht:
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
bekommst du als resultat
Code: Alles auswählen
sort /tmp/sort.in -k 2,2
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
bekommst du als resultat
Code: Alles auswählen
me@my:/> sort /tmp/sort.in -k 2,2
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.2 44:208:7D:CB:05
192.168.0.5 44:208:7D:CB:05
- SledgeHammer
- Beiträge: 175
- Registriert: 10.08.2003 17:32:04
Super danke hat mir schon mal bissl weitergeholfen
ich möchte die Zeilen von Datei B in die entsprechenden Zeilen Unter Datei A einsortieren.
nach dem Kreterium MAC adresse...
Beispiel:
Datei A:
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
Datei B:
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.159 44:208:7D:CB:05
192.168.0.232 22:2D:F8:74:GH:12
192.168.0.174 11:F1:B7:CA:FF:18
192.168.0.133 44:208:7D:CB:05
Ergebnis Datei A + Datei B:
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.159 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.232 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.174 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
192.168.0.133 44:208:7D:CB:05
Mit welchem Program mach ich das ?
ich möchte die Zeilen von Datei B in die entsprechenden Zeilen Unter Datei A einsortieren.
nach dem Kreterium MAC adresse...
Beispiel:
Datei A:
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
Datei B:
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.159 44:208:7D:CB:05
192.168.0.232 22:2D:F8:74:GH:12
192.168.0.174 11:F1:B7:CA:FF:18
192.168.0.133 44:208:7D:CB:05
Ergebnis Datei A + Datei B:
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.2 44:208:7D:CB:05
192.168.0.159 44:208:7D:CB:05
192.168.0.3 22:2D:F8:74:GH:12
192.168.0.232 22:2D:F8:74:GH:12
192.168.0.4 11:F1:B7:CA:FF:18
192.168.0.174 11:F1:B7:CA:FF:18
192.168.0.5 44:208:7D:CB:05
192.168.0.133 44:208:7D:CB:05
Mit welchem Program mach ich das ?
Code: Alles auswählen
sort -k 2,2 -o A A B
cu
- SledgeHammer
- Beiträge: 175
- Registriert: 10.08.2003 17:32:04
vieleicht ist das auch zu schwer erklärt was ich will
Datei A:
+192.168.0.100 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
Datei B:
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.159 44:28:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.66 11:F1:B7:CA:FF:18
Ergebnis in einer neuen datei
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
+192.168.0.2 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
Die + Zeichen sowie die - sollen das nur verdeutlichen was ich meine aber sind in keiner Datei vorhanden
Das ganz in Worte gefaßt ich möchte die Datei A als Referenz nehmmen und mit den Daten von Datei B anreichern.
Die Daten also aus Datei B sind den der Datei A untergeordnet.
Ich hab mir das so vorgestellt
ich suche nach einer MAC adresse von datei B in datei A wenn ich sie gefunden habe in datei a dann soll die ganze zeile von datei B unter der gefunden MAC in Datei A schreiben.
gruß Dennis
Datei A:
+192.168.0.100 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
Datei B:
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.159 44:28:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.66 11:F1:B7:CA:FF:18
Ergebnis in einer neuen datei
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
+192.168.0.2 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
Die + Zeichen sowie die - sollen das nur verdeutlichen was ich meine aber sind in keiner Datei vorhanden
Das ganz in Worte gefaßt ich möchte die Datei A als Referenz nehmmen und mit den Daten von Datei B anreichern.
Die Daten also aus Datei B sind den der Datei A untergeordnet.
Ich hab mir das so vorgestellt
ich suche nach einer MAC adresse von datei B in datei A wenn ich sie gefunden habe in datei a dann soll die ganze zeile von datei B unter der gefunden MAC in Datei A schreiben.
gruß Dennis
Das was du da schreibst geht ja genau mit dem Befehl:
So what ?
Code: Alles auswählen
sort -k 2,2 -o FileC FileA FileB
cat FileC
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
- SledgeHammer
- Beiträge: 175
- Registriert: 10.08.2003 17:32:04
ja stimmt (haue gerade kopf aufm tisch ) aber leider ist die sortierung immer noch nicht richtig
die mit +müssen auch sortiert werden hab selber im eifer des gefechtes nicht gemerkt
so sollte das aussehen
+192.168.0.2 44:208:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
die mit +müssen auch sortiert werden hab selber im eifer des gefechtes nicht gemerkt
so sollte das aussehen
+192.168.0.2 44:208:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
Das macht jetzt für mich aber gar keinen Sinn mehrSledgeHammer hat geschrieben:ja stimmt (haue gerade kopf aufm tisch ) aber leider ist die sortierung immer noch nicht richtig
die mit +müssen auch sortiert werden hab selber im eifer des gefechtes nicht gemerkt
so sollte das aussehen
+192.168.0.2 44:208:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
Wieso 44..11.. (MAC) ?
Und Wieso solch ein Kuddelmuddel ?
Sorry, aber wenn du nicht weisst was du wie sortieren möchtest kann man dir auch nicht helfen
//edit
glaub ich hab's geschnallt... bin dran was am suchen...
Hier noch ein Versuch
so ?
Erst nach MAC sortiert, anschliessend nach IP...
Code: Alles auswählen
sort -k 2,2 -k 1,1 -o FileC FileA FileB
cat FileC
-192.168.0.1 11:F1:B7:CA:FF:18
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.66 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
-192.168.0.152 44:28:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
Erst nach MAC sortiert, anschliessend nach IP...
- SledgeHammer
- Beiträge: 175
- Registriert: 10.08.2003 17:32:04
vielen Dank, ich weiß das iss ziemlich komisch - danke für das dabeibleiben!
warum ich das so geordnet haben will liegt daran das filea reale ip adressen beinhaltet und fileb virtuelle deswegen auch die gleichen MAC adressen.
Man kann so sehen welche virtuellen ip adressen welchem Server gehören und das automatische weiterverarbeiten der Daten ist auch viel einfacher sobald das sortiert ist.
leider gibts immer noch schwirigkeiten
sort -k 2,2 -k 1,1 -o filec filea fileb
cat filea
+192.168.0.2 44:208:7D:CB:05
+192.168.0.100 11:F1:B7:CA:FF:18
+192.168.0.13 11:D2:33:CA:FF:EE
cat fileb
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.159 44:28:7D:CB:05
-192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
-192.168.0.20 11:D2:33:CA:FF:EE
cat filec
+192.168.0.13 11:D2:33:CA:FF:EE
-192.168.0.20 11:D2:33:CA:FF:EE
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
filec müsste so aussehen
+192.168.0.2 44:208:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
+192.168.0.13 11:D2:33:CA:FF:EE
-192.168.0.20 11:D2:33:CA:FF:EE
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
-192.168.0.100 11:F1:B7:CA:FF:18
/EDIT
Ist wohl kein Bug liegt daran das man die Sache ganz auschreiben muss
sprich
falsch 192.168.0.1
richtig 192.168.000.001
dann muss ich wohl vorher per awk nen paar nullen hinzufügen???
warum ich das so geordnet haben will liegt daran das filea reale ip adressen beinhaltet und fileb virtuelle deswegen auch die gleichen MAC adressen.
Man kann so sehen welche virtuellen ip adressen welchem Server gehören und das automatische weiterverarbeiten der Daten ist auch viel einfacher sobald das sortiert ist.
leider gibts immer noch schwirigkeiten
sort -k 2,2 -k 1,1 -o filec filea fileb
cat filea
+192.168.0.2 44:208:7D:CB:05
+192.168.0.100 11:F1:B7:CA:FF:18
+192.168.0.13 11:D2:33:CA:FF:EE
cat fileb
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.159 44:28:7D:CB:05
-192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
-192.168.0.20 11:D2:33:CA:FF:EE
cat filec
+192.168.0.13 11:D2:33:CA:FF:EE
-192.168.0.20 11:D2:33:CA:FF:EE
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
+192.168.0.2 44:208:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
filec müsste so aussehen
+192.168.0.2 44:208:7D:CB:05
-192.168.0.159 44:28:7D:CB:05
+192.168.0.13 11:D2:33:CA:FF:EE
-192.168.0.20 11:D2:33:CA:FF:EE
+192.168.0.100 11:F1:B7:CA:FF:18
-192.168.0.1 11:F1:B7:CA:FF:18
-192.168.0.11 11:F1:B7:CA:FF:18
-192.168.0.100 11:F1:B7:CA:FF:18
/EDIT
Ist wohl kein Bug liegt daran das man die Sache ganz auschreiben muss
sprich
falsch 192.168.0.1
richtig 192.168.000.001
dann muss ich wohl vorher per awk nen paar nullen hinzufügen???
Wonach ist filec dann eigentlich sortiert?
Ich kann da keine logische sortierung erkennen.
Bei meinen Tests mit Python bekomme ich z.b.
heraus, da ist erst nach mac und dann nach ip absteigend sortiert.
Gruß
Dookie
Ich kann da keine logische sortierung erkennen.
Bei meinen Tests mit Python bekomme ich z.b.
Code: Alles auswählen
192.168.0.2 44:208:7D:CB:5
192.168.0.159 44:28:7D:CB:5
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.100 11:F1:B7:CA:FF:18
192.168.0.11 11:F1:B7:CA:FF:18
192.168.0.1 11:F1:B7:CA:FF:18
192.168.0.20 11:D2:33:CA:FF:EE
192.168.0.13 11:D2:33:CA:FF:EE
Gruß
Dookie