GNU/Linux >> Linux の 問題 >  >> Ubuntu

Grepの結果を考慮して、3番目の列で値が最も低い行を見つけますか?

このような行で構成されるファイルがあります(他の番号も含まれています)。これは

の出力の一部です
$ grep 1848 filename.csv

.csvの3番目の列が最も低い上位5行を見つけるにはどうすればよいですか。 1848が1列目または2列目にある場合のファイル?

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

残念ながら、1848は3番目の列にも表示されることがあり、それを無視する必要があります。

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

承認された回答:

GNUソートの場合:

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

(最初の列が正確に4桁より少ないか多い場合は、{4}を置き換えます +を使用 )

出力:

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

Ubuntu
  1. Grep – GrepパターンのブラケットがPs結果からGrepプロセスを削除するのはなぜですか?

  2. Debian –特定のコマンドを提供するパッケージを見つけますか?

  3. ライブCDでシステムを更新できますか?

  1. grep から返される結果の数を制限するにはどうすればよいですか?

  2. 列値条件で awk を使用する

  3. Linux - 特定の行からファイルの最後までの grep

  1. 「#」または「;」で始まらない行をgrepする方法は?

  2. 特定の列の内容を awk に置き換える方法は?

  3. 1 で始まる行を grep しますが、10、11、100 などではありません。