csvファイルのgrep出力をソートする方法はありますか?

csvファイルのgrep出力をソートする方法はありますか?

検索する必要があるcsvファイルがあります。問題は、その中にデータが多すぎて出力を見るのに少し問題があるということです。こんな感じ

col1,col2,...col23
1,123,...,12.01
43,1123,...,142.455
12,63,...,723.1122
...

そのため、どのパターンを適用した後、出力を降順に並べ替えたいとgrep思います。浮動小数点数を含みます。これを行う方法はありますか?col23col23

私の言葉はこれです:

grep "pattern" the_file.csv | ...sort it

答え1

使用:

grep "pattern" the_file.csv | sort -t, -nk 23 | column -ts,

または

grep "pattern" the_file.csv | sed 's/,/ /g' | sort -nk 23 | column -t

指数表記法にsort -g置き換えsort -n

説明する:

  • sort -k 23:23列でソート
  • sort -n: 文字列値に基づいて比較
  • sort -g:一般数値による比較
  • sort -t,: 区切り記号で並べ替え,
  • column -t:スペースまたは区切り文字()を使用して-s<delimiter>列を作成します。
  • sed 's/,/ /g':すべての行()からs()を,空白に置き換えます。' 'g

関連情報