PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie bei IP-Adressen das letzte Byte abschneiden?



Linus
11-05-2009, 23:38
Ich habe IP(V4)-Adressen in Text-Dateien und zwar eine pro Zeile.
Bei jeder IP benötige ich aber nur die ersten 3 Bytes, also z. B.

12.34.56

von

12.34.56.78

Wie bekommt man dieses Abschneiden unter der Bash hin? :confused:

BLUESCREEN3D
12-05-2009, 17:01
Das geht mit "cut".

Linus
13-05-2009, 00:36
Ok,

cut -d '.' -f 1-3 <datei>

funktioniert; danke :)

jan61
15-05-2009, 21:14
Moin,

steht die Frage in Zusammenhang mit dieser hier? http://www.mrunix.de/forums/showthread.php?t=64505

Hast Du Dir mal Gedanken darüber gemacht, wie die Lösung insgesamt angegangen werden kann, ohne Stück für Stück die einzelnen Schritte isoliert lösen zu wollen?

Wenn Du jetzt nämlich die (vielleicht von Deinem geposteten awk erzeugte) Ausgabe in eine Datei geschrieben hast, um sie anschließend durch einen cut zu jagen und dann anschließend irgendwie weiter zu verarbeiten, dann gehst Du höchst ineffektiv vor.

Zum einen kannst Du die Bytes einer IP-Adresse auch in einem awk trennen (Option -F) oder direkt in der Shell ohne Aufruf eines externen Kommandos:

jan@jack:~/tmp> IP=192.168.1.2
jan@jack:~/tmp> echo ${IP%.*}
192.168.1
- je nachdem wie Du weiter vorgehen willst: In awk stehen Dir etliche Möglichkeiten zum Vergleichen, Zwischenspeichern und Ausgeben von numerischen Werten zur Verfügung, in der Shell ebenso.

Versuche also bitte, Deine Fragen und Lösungsansätze in dem Kontext zu beschreiben, in dem Du arbeitest. Dann wird die Qualität der Antworten besser, weil man sich vorstellen kann, was Du erreichen willst und an welcher Stelle des Problems Du gerade hängst.

Jan

Linus
15-05-2009, 22:00
steht die Frage in Zusammenhang mit dieser hier? http://www.mrunix.de/forums/showthread.php?t=64505


Im Prinzip schon, aber mich interessiert neben einer Gesamtlösung auch das separate Lösen der Teil-Probleme.
Den Trick mit der Bash probiere ich mal aus; danke :)