如何按位升序对信号总线进行排序?

如何按位升序对信号总线进行排序?

我正在尝试使用信号总线对文件进行排序。我正在寻找其中位按升序排列的结果 - 2 后跟 3,而不是 20。

cat file1 |sort

file1
cls_16_snap[2]
cls_16_snap[20]
cls_16_snap[21]
cls_16_snap[22]
cls_16_snap[23]
cls_16_snap[24]
cls_16_snap[25]
cls_16_snap[26]
cls_16_snap[27]
cls_16_snap[28]
cls_16_snap[29]
cls_16_snap[3]
cls_16_snap[30]

结果

-------
cls_16_snap[2]
cls_16_snap[20]
cls_16_snap[21]
cls_16_snap[22]
cls_16_snap[23]
cls_16_snap[24]
cls_16_snap[25]
cls_16_snap[26]
cls_16_snap[27]
cls_16_snap[28]
cls_16_snap[29]
cls_16_snap[3]
cls_16_snap[30]

答案1

尝试这个:

$ sort -t'[' -nk2 file1
cls_16_snap[2]
cls_16_snap[3]
cls_16_snap[20]
cls_16_snap[21]
cls_16_snap[22]
cls_16_snap[23]
cls_16_snap[24]
cls_16_snap[25]
cls_16_snap[26]
cls_16_snap[27]
cls_16_snap[28]
cls_16_snap[29]
cls_16_snap[30]

-n选项告诉sort比较数字而不是字符串。

相关内容