Text-Processing

按一列按字典順序對多個分隔文件進行排序,按另一列按數字排序

  • January 7, 2019

我希望min_ex按字典順序按第一列和按數字按第二列對下面的 TSV 文件(稱為 )進行排序。

A X, N    2.2
A, N    5.7
A, A    5.8
A, N    2.1
A, T    0.2
B G, M    2.3
B, L    0.1
B, I    0.2
B, M    9.3
B, C    9.9

我試著用sort -k1,2 -n min_ex. 但它不起作用,因為它導致:

A, A    5.8
A, N    2.1
A, N    5.7
A, T    0.2
A X, N    2.2
B, C    9.9
B G, M    2.3
B, I    0.2
B, L    0.1
B, M    9.3

也認為我也很確定(通過實驗)sort將任何空格作為分隔符,但我沒有看到設置分隔符的選項。

我希望使用純 AWK 或sed根本不使用(最好兩者都單獨使用)的解決方案,並且我希望盡可能保持 POSIX 兼容。

sort -t$'\t' -k1,1 -k2,2n

做的伎倆,除了部分之外,它還符合 POSIX 標準$'\t'-t指定欄位分隔符(而不是預設的空白到非空白轉換);後綴可n應用於單個欄位定義。

引用自:https://unix.stackexchange.com/questions/492957