2番目の列に基づいてソートして最初の2行を省略するコマンド

2番目の列に基づいてソートして最初の2行を省略するコマンド

filename.csvコンテンツを含むCSVファイルがあります。

,"Range 1 (%)","Range 2 (%)"
"Color","Number Color 1","Number Color 2"
"Red","99.0","5.2"
"Orange","12.9","0.0"
"Yellow","33.9","1.2"
"Green","13.9","76.2"
"Blue","87.6","97.2"
"Purple","86.8","55.5"

2番目の列の値に基づいてファイルを数値順にソートしようとしています。しかし、ファイルの最初の2行はヘッダーなので省略したいと思います。私のコマンドは次のようになりますが、最初の2行がなく、2番目の列に基づいてソートせずに元のファイルを出力します。

awk -F ',' '(NR>2)’ filename.csv | sort -t',' -k2 -n

助けてくれてありがとう:)ありがとう!

ベストアンサー1

変形:

head -n 2 file.csv && tail -n +3 file.csv | sort -k 2

ヘッダー行とデータ行を別々に処理するだけです。

結果を別のものに渡すには、角かっこを使用します。

(head -n 2 file.csv && tail -n +3 file.csv | sort -k 2) | less

おすすめ記事