GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Finden der Zeilen mit dem niedrigsten Wert in ihrer dritten Spalte bei gegebenen Grep-Ergebnissen?

Ich habe eine Datei, die aus Zeilen wie dieser besteht (andere Zahlen enthalten). Dies ist Teil der Ausgabe von

$ grep 1848 filename.csv

Wie kann ich die oberen 5 Zeilen finden, die die niedrigste dritte Spalte in der .csv haben vorausgesetzt, dass 1848 entweder in der ersten oder zweiten Spalte steht?

1848,2598,11.310694021273559
1848,2599,10.947275955606203
1848,2600,10.635270124233982
1848,2601,11.916564552040725
1848,2602,12.119810736845844
1848,2603,12.406661156256154
1848,2604,10.636275056472996
1848,2605,12.549890992708612
1848,2606,9.783802450936204
1848,2607,11.253697489670264
1848,2608,12.16385432290674
1848,2609,10.30355814063016
1848,2610,12.102525596913923
1848,2611,11.636595992818505
1848,2612,10.741178028606866
1848,2613,11.352414275107423
1848,2614,12.204860161717253
1848,2615,12.959915468475387
1848,2616,11.320652192610872

Leider erscheint 1848 manchmal auch in der dritten Spalte und ich muss das ignorieren:

6687,8963,9.241848677632822
6687,9111,10.537325656184889
6687,9506,11.315629894841848

Akzeptierte Antwort:

Mit GNU-Sortierung:

grep -E '(^1848|^[0-9]{4},1848)' file | sort -t, -k3n | head -n 5

(Wenn die erste Spalte weniger oder mehr als genau 4 Ziffern haben kann, ersetzen Sie {4} mit + )

Ausgabe:

1848,2606,9.783802450936204
1848,2609,10.30355814063016
1848,2600,10.635270124233982
1848,2604,10.636275056472996
1848,2612,10.741178028606866

Ubuntu
  1. Grep – Warum entfernen Klammern im Grep-Muster den Grep-Prozess aus Ps-Ergebnissen?

  2. Zeilen drucken, wenn angegebene Spalte mit einem Großbuchstaben beginnt?

  3. Wie benenne ich den Satz von Dateien mit Muster um?

  4. Wie begrenze ich die Anzahl der von grep zurückgegebenen Ergebnisse?

  5. Linux - grep von bestimmten Zeilen bis zum Ende der Datei

Verwenden des GREP-Befehls unter Linux mit Beispielen

Das Grep-Befehls-Tutorial mit Beispielen für Anfänger

Das Uniq Command Tutorial mit Beispielen für Anfänger

Bearbeiten von Text in der Befehlszeile mit grep

Wie ersetze ich den Inhalt einer bestimmten Spalte durch awk?

Grep-Zeilen beginnend mit 1, aber nicht 10, 11, 100 usw