对制表符分隔的文件进行排序

新手上路,请多包涵

我有以下格式的数据:

 foo<tab>1.00<space>1.33<space>2.00<tab>3

现在我尝试根据最后一个字段对文件进行递减排序。我尝试了以下命令,但没有按预期排序。

 $ sort -k3nr file.txt  # apparently this sort by space as delimiter

$ sort -t"\t" -k3nr file.txt
  sort: multi-character tab `\\t'

$ sort -t "`/bin/echo '\t'`" -k3,3nr file.txt
  sort: multi-character tab `\\t'

正确的方法是什么?

这是 样本数据

原文由 neversaint 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 543
2 个回答

默认情况下,字段分隔符是非空白到空白的过渡,因此选项卡应该可以正常工作。

但是,这些列的索引基数为 1 和基数为 0,因此您可能想要

sort -k4nr file.txt

以相反的顺序按第 4 列对 file.txt 进行排序。 (虽然问题中的数据甚至有 5 个字段,所以最后一个字段将是索引 5。)

原文由 laalto 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题