`
flysnowxf
  • 浏览: 577773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sort -k选项的注意事项

阅读更多
-k选项使用有一个潜规则,如果不注意排序是不对的。
举个例子,以下内容保存为fruit:
apple 4
apple 5
第一个字段为水果名称,第二个字段为价格。我的需求是,首先对水果名称进行排序,然后再根据价格进行降序。我的第一反应是:
cat fruit|sort -k1 -k2nr
结果是什么?居然还是:
apple 4
apple 5
正确的命令应该是:
cat fruit|sort -k1,1 -k2nr
这样的结果才正确:
apple 5
apple 4
查看sort -k说明:
-k POS1[,POS2]
--key=POS1[,POS2]
     Specify a sort field that consists of the part of the line between
     POS1 and POS2 (or the end of the line, if POS2 is omitted)
意思是如果省略了POS2,那么排序字段的end就会设定为行尾。太奇怪的规则了,这样很容易让人误用。
回到刚才的例子,使用awk -k1的后果是,第一个排序字段的内容延长到行尾,包括了价格,使得-k2nr的作用完全失效。
初次使用sort要注意这个潜规则,很无语。
分享到:
评论
2 楼 flysnowxf 2010-10-13  
Magicloud 写道
思考方式的不同罢了,了解越多,你会见识越多。

我觉得这样的规则很容易让新手误用,而且还很难找到是什么原因造成的。
1 楼 Magicloud 2010-10-12  
思考方式的不同罢了,了解越多,你会见识越多。

相关推荐

    sort命令的k选项大讨论

    sort命令的k选项大讨论,最详细的Sort命令介绍。

    前端开源库-import-sort-parser-babylon

    **前端开源库-import-sort-parser-babylon** 在前端开发中,代码组织和规范性是提升团队协作效率和代码可维护性的重要因素。`import-sort-parser-babylon` 是一款专门针对JavaScript导入语句进行自动排序的工具,它...

    drag-sort-listview

    "drag-sort-listview"还提供了许多自定义选项,包括但不限于: - 自定义拖放指示器:你可以改变拖动时悬浮项的外观,使其更符合应用的设计风格。 - 隐藏原位置项:在拖动过程中,可以选择隐藏原始位置的项,以提供更...

    Android应用源码之drag-sort-listview-master.rar

    《Android应用源码解析:Drag-Sort-Listview深度探讨》 在Android开发中,我们经常需要实现可拖动排序的列表视图,这在诸如购物应用、任务管理器等场景下尤为常见。Drag-Sort-Listview是一个开源库,它为Android...

    linux shell sort从入门到精通

    1. 对多个字段进行排序:`sort -t, -k 2r -k 3 a.txt`,将文件 a.txt 中的内容按照第二列和第三列排序。 2. 对多个文件进行排序:`sort -n file1.txt file2.txt`,将文件 file1.txt 和 file2.txt 中的内容按照数字...

    前端开源库-eslint-plugin-sort-imports-es6-autofix

    前端开源库-eslint-plugin-sort-imports-es6-autofixeslint-plugin-sort-imports-es6-autofix,一个排序导入规则,可以正确区分es6导入类型。

    sort-deepsort-yolov3-ROS-master.zip

    在本项目"sort-deepsort-yolov3-ROS-master.zip"中,主要涉及的是目标检测与跟踪技术的集成应用,特别关注了ROS(Robot Operating System,机器人操作系统)中的实现。这个压缩包包含了一个名为"sort-deepsort-yolov...

    Linux中用Sort和Tsort对文件进行排序

    例如,/etc/passwd 文件中的字段是用冒号(:)分隔的,可以使用 -t 选项指定分隔符,例如 sort -t : -k 5,5 /etc/passwd 按照注释字段对密码文件进行排序。 Sort 命令还可以使用键和偏移量来进行更精细的控制。偏移...

    deepsort-yolov3-车辆行人-跟踪结果.zip

    《深度学习目标检测与追踪:DeepSORT-YOLOv3在车辆行人跟踪中的应用》 在计算机视觉领域,目标检测和目标追踪是两个至关重要的任务。目标检测旨在识别图像或视频帧中的特定对象,而目标追踪则关注在连续的视频序列...

    21.[开源][安卓][拖拽]drag-sort-listview-master

    21.[开源][安卓][拖拽]drag-sort-listview-master DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能。重写了TouchInterceptor(TI)类来提供更加优美的拖拽动画效果。 DSLV...

    DeepSORT-YOLOv5猫狗检测和跟踪+可视化目标运动轨迹

    在本文中,我们将深入探讨"DeepSORT-YOLOv5猫狗检测和跟踪+可视化目标运动轨迹"这一技术主题。这个项目结合了两种强大的计算机视觉技术:YOLOv5(You Only Look Once的第五版)对象检测算法和DeepSORT目标跟踪算法,...

    eslint-plugin-sort-keys-fix:https的分叉

    注意:如果全局安装了ESLint(使用-g标志),则还必须全局安装eslint-plugin-sort-keys-fix 。 用法 将sort-keys-fix添加到.eslintrc配置文件的plugins部分。 您可以省略eslint-plugin-前缀: { " plugins " : [ ...

    deep-sort-pytorch-master-yolov3配置好的代码

    《深度学习目标追踪技术:基于Deep-Sort与PyTorch的YOLOv3实现详解》 在计算机视觉领域,目标追踪是一项重要的任务,它能够帮助系统持续关注在视频或序列图像中的特定对象。Deep-Sort是一种高效且准确的目标追踪...

    deepsort-v1.2

    "DeepSORT-v1.2" 是一个基于深度学习的目标跟踪算法的版本,它结合了深度神经网络(DNN)和卡尔曼滤波器,以实现高效且准确的多目标跟踪。这个版本可能对原有的DeepSORT算法进行了一些优化或增强,以提高在复杂场景...

    eslint-plugin-sort-destructure-keys:ESLint插件,用于检查是否应按对象模式对键进行排序

    eslint-plugin-sort-destruct-keys 要求对对象分解键进行排序 ...注意:如果全局安装了ESLint(使用-g标志),则还必须全局安装eslint-plugin-sort-destructure-keys 。 用法 将sort-destructure-keys添加到.eslintr

    YOLOv8-DeepSORT-code.zip

    YOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zipYOLOv8-DeepSORT_code.zip YOLOv8-DeepSORT_code.zip

    yolox-deepsort-main.zip

    README.md文件通常提供了项目简介、使用指南和注意事项,帮助用户快速上手。 总结来说,"yolox-deepsort-main.zip"压缩包提供了一个完整的YOLOX+DeepSORT目标检测与跟踪解决方案,包括了源代码、依赖列表和运行示例...

    ShellSort-ShellSort

    ShellSort-ShellSort

    PyPI 官网下载 | topological-sort-backport-0.3.0.tar.gz

    标题中的"PyPI 官网下载 | topological-sort-backport-0.3.0.tar.gz"指的是Python的包管理器PyPI(Python Package Index)上的一款名为`topological-sort-backport`的软件包,版本号为0.3.0,其源代码以tar.gz格式...

Global site tag (gtag.js) - Google Analytics