如何用数字+字符对字符串进行排序?

时间:2018-05-18 04:43:36

标签: bash sorting

我的目录列表信息如下所示。

..../2mstp/zdp/b.dat:FRAME 12 9625 La 16569H  6744SI 
..../1.5mstp/zdp/d.dat:FRAME 18 9625 La 16577H  6744SI 
..../1mstp/zdp/b.dat:FRAME 11 9625 La 16577H  6744SI
..../1mstp/zdp/c.dat:FRAME 78 9625 La 16569H  6744SI
..../500kstp/zdp/a.dat:FRAME 0 9625 Fe 6744SI
..../500kstp/zdp/b.dat:FRAME 23 9625 La 15438H 6744SI
......
..../30mstp/zdp/e.dat:FRAME 0 9625 La 13469H  6744SI

所有这些信息都写在上面的文件(foo.dat)中。我想根据第4-6列对数据进行排序并删除那些重复数据,然后根据第一列对所有唯一数据进行排序,尤其是基于500kstp,1mstp,1.5mstp,2mstp,...如下所示。 我用了命令

sort -unk 4,6 foo.dat |sort -nk 1 > boo.dat

排序和删除重复的数据。但是,我无法按照下面的第1列列出数据。

..../500kstp/zdp/a.dat:FRAME 0 9625 Fe 6744SI
..../500kstp/zdp/b.dat:FRAME 23 9625 La 15438H 6744SI
..../1mstp/zdp/b.dat:FRAME 12 9625 La 16569H  6744SI 
..../1mstp/zdp/d.dat:FRAME 18 9625 La 16577H  6744SI 
......
..../30mstp/zdp/e.dat:FRAME 0 9625 La 13469H  6744SI

任何建议和帮助都将深表感谢。

0 个答案:

没有答案