sort コマンドで tsv ファイルを並べ替えしたときのメモをここに残します。
やりたいこと
tsv ファイルを5列目を数値として昇順ソートする。
コマンド
sort -t $'\t' -k5,5n [ファイル名]
各オプションの意味
- -t $'\t'
- 区切り文字をタブに指定
- $'\t' は「タブ文字」
- -k5,5n
- 5列目だけをキーにして数値ソートする指定
- -k5,5: 「5列目から5列目までをソートキーにする」
- n: 数値として比較する(numeric sort)
- n がないと文字列比較になる
具体例
入力(TSV)
a b c d 10 a b c d 2 a b c d 30
実行
sort -t $'\t' -k5,5n sample.tsv
出力
a b c d 2 a b c d 10 a b c d 30
考慮
| ケース | 結果 |
| -------- | ------------ |
| 空文字 | 先頭に来る |
| `NULL` | 0扱い or 文字列扱い |
| `-` | 0扱いされることあり |
| `10,000` | 数値として認識されない |