http://www.pronix.de -> Forum -> Linux-Unix Programmierung

Forum: Linux-Unix Programmierung

Moderatoren: juergen, Martin Conrad

Thema: [EDIT] - In Datei suchen

  • (nur registrierte Mitglieder)

[EDIT] - In Datei suchen

Generic1 am 22.09.2010 um 11:33

Hallo,

ich habe eine Datei die so aussieht:

myAddress1 name1_Version1
myAddress1 name1_Version2
myAddress1 name1_Version66
myAddress2 ..
myAddress2
myAddress3
....

ich möchte jetzt z.B.: für myAddress1 herausbekommen, welcher Name die höchste Version hat,
also im Fall oben sollte ich herausbekommen:

myAddress1 name1_Version66

Weiß jemand wie ich das am Einfachsten machen kann? Am Besten wäre, wenn man dem ShellScript den Namen übergeben könnte (z.B.: myAddress1) und den Namen mit der höchsten Version zurückbekommen würde -> name1_Version66.

Vielen Dank,
lg
Generic1
 

Re: In Datei suchen

Patrick am 22.09.2010 um 12:55

awk '/[0-9]/{if($2>a)a=$2}END{print a}' Dateiname

Funktioniert solange die Zeilen in deiner Datei so ausschauen, wie von dir beschrieben.
Das Muster kann ansonsten noch angepasst werden.

--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.

 

Re: In Datei suchen

Generic1 am 22.09.2010 um 14:47

Super, das funktioniert ja perfekt,
jetzt wäre noch meine Frage, kann ich auch einen Namen vorgeben, von dem dann die höchste Version gefunden werden soll, also im oberen Fall gebe ich z.B.: vor, dass von myAddress1 der Name mit der höchsten Version gefunden werden soll.
Ist das mit diesem Statement möglich?

Besten Dank,
lg
Generic1
 

Re: In Datei suchen

Patrick am 22.09.2010 um 15:51

grep -i 'myAddress2' DATEINAME | awk '/[0-9]/{if($2>a)a=$2}END{print a}'

Ich stelle grade fest, dass Version7 größer ist als Version10.
Da passt also etwas noch nicht Grafik: Smilie Traurig

--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.

 

Re: In Datei suchen

broesel (webmaster) am 22.09.2010 um 16:02

Zitat:

Ich stelle grade fest, dass Version7 größer ist als Version10.
Da passt also etwas noch nicht Grafik: Smilie Traurig


Das passt perfekt, denn "Version7" ist lexikographisch größer als "Version10", weil '1' < '7'.

Da fällt mir gerade ein gutes Rätsel für die Knobelecke ein...

Gruss,
Philip

--
The C Programming Quiz (externer link) - bitte Fragen einreichen :)

 
  • (nur registrierte Mitglieder)