Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Daten aus txt-datei verarbeiten

  1. #1
    jacky0815
    Gast

    Daten aus txt-datei verarbeiten

    Hallo,

    leider kenn ich mich nicht so mit shellscripten aus, hoffe ihr könnt mir zumindest beim ersten teil meines Problems helfen.

    Folgende Situation.

    Ich habe eine Textdatei die folgendermaßen aufgebaut ist:

    xx.12.2002
    192.168.xxx.xx | 51.6078 | 21229.4470 | 19.12.2002
    192.158.xxx.xxx | 6435.0301 | 120.4214 | 19.12.2002

    Sprich erst die IP, dann ein trennzeichen, dann der upload | donwload.

    Nun will ich hier zum einen alle IPs filtern, die entweder über 400.0000 up oder donwload haben. Diese in eine neue datei schreiben.
    Die über 1000.0000 haben sollen in eine extra datei. Dort muss ich dann die Ip auslesen und host ip machen.

    Wie stelle ich das am dümmsten an? Ich weiß zwar das ich mit grep xxx nach zeichenfolgen suchen kann, auch dass ich mit cut -c nur bestimmte spalten ausgeben kann, aber das nützt mir nicht viel.

    Vielen Danke schonmal

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Eine Idee wäre, die Reihenfolge der Spalten zu ändern.

    Also mit cut oder awk eine neue Datei erzeugen, in der der Upload ganz vorne steht.
    Dann könnte man sortieren und danach eventuell leichter weiter arbeiten.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    jacky0815
    Gast
    Also ich habe es soweit, dass ich alle rausgefiltert habe, die ich nicht bearbeiten will. Nun suche ich krampfhaft nach einer möglichkeit ein stück von einer zeile die zwischen 2 zeichen steht rauszufiltern. z.B. die IP geht von anfang bis | (Trennzeichen) oder der download von | bis |.

    Wie bekomme ich nur genau diese Zeichen?

  4. #4
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Beiträge
    228
    das get mit awk -F '|' '{print $1}'
    pornstars-online.de

  5. #5
    jacky0815
    Gast
    Hallo, ich brauch nochmal euere Hilfe. Vielen Dank bis hier hin. Hat mir schon sehr geholfen.

    Ich will mit desem Befehl die IP ausfösen. Nur macht er das nicht.
    Wenn ich "host" und die hochkommata weglasse, bringt er mit die IP. Wie bekomme ich "host" nun dazu diese IP aufzulösen?

    Hier der Befehl:
    host 'cat /tmp/test.dld | head -$zeile | tail -1 | awk -F '|' '{print $1}' '

    Danke schonmal

  6. #6
    Registrierter Benutzer
    Registriert seit
    26.12.2002
    Ort
    Matrix
    Beiträge
    194
    Original geschrieben von jacky0815
    Hallo, ich brauch nochmal euere Hilfe. Vielen Dank bis hier hin. Hat mir schon sehr geholfen.

    Ich will mit desem Befehl die IP ausfösen. Nur macht er das nicht.
    Wenn ich "host" und die hochkommata weglasse, bringt er mit die IP. Wie bekomme ich "host" nun dazu diese IP aufzulösen?

    Hier der Befehl:
    host 'cat /tmp/test.dld | head -$zeile | tail -1 | awk -F '|' '{print $1}' '
    vereinfache das ganze und korregiere es so:

    host $(awk -v zeile=$zeile -F '|' '{ if( NR==zeile ) print $1 }' /tmp/test.dld )

    die environment-variable $zeile muss natürlich gesetzt sein

    -j

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •