【发布时间】:2018-06-26 12:47:24
【问题描述】:
我有一个看起来像这样的文本文件
text_a_3 xxx yyy
- - - - - - - - - - -
text_b_2 xyx zyz
- - - - - - - - - - -
text_b_3 xxy zyy
- - - - - - - - - - -
text_a_2 foo bar
- - - - - - - - - - -
text_a_1 foo bla
- - - - - - - - - - -
text_b_1 bla bla
我想根据第一个字段对该文件进行数字排序,以便我的输出如下所示:
text_a_1 foo bla
- - - - - - - - - - -
text_a_2 foo bar
- - - - - - - - - - -
text_a_3 xxx yyy
- - - - - - - - - - -
text_b_1 bla bla
- - - - - - - - - - -
text_b_2 xyx zyz
- - - - - - - - - - -
text_b_3 xxy zyy
我认为 sort 会完成这项工作。因此我尝试了
sort -n name_of_my_file
sort -k1 -n name_of_my_file
但它给了
- - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - -
text_a_1 foo bla
text_a_2 foo bar
text_a_3 xxx yyy
text_b_1 bla bla
text_b_2 xyx zyz
text_b_3 xxy zyy
--field-separator 选项没有任何帮助。
有没有什么方法可以通过单行、基于排序的命令来实现这一点? 或者是提取包含行的文本,对其进行排序,然后插入行分隔符的唯一解决方案?
【问题讨论】:
标签: bash sorting field delimiter