`
flysnowxf
  • 浏览: 580095 次
  • 性别: 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  
思考方式的不同罢了,了解越多,你会见识越多。

相关推荐

    du

    6. **注意事项**: - "du" 计算的是实际占用的磁盘空间,而不是文件的逻辑大小。硬链接文件在 "du" 中只会计算一次,因为它们共享相同的物理存储。 - 对于大目录,"du" 可能需要一些时间来完成,因为它必须遍历...

    mysql安装.docx

    #### 三、注意事项 - 在配置文件中设置的参数可以根据实际需求进行调整,例如最大连接数(`max_connections`)、查询缓存大小(`query_cache_size`)等。 - 初始化过程中生成的临时密码非常重要,用于首次登录MySQL时...

    hive操作指南

    ### Hive操作指南知识点详解 ...以上是对“Hive操作指南”的详细介绍,包括Hive的架构、基本操作、高级特性以及使用注意事项等内容。通过这些内容的学习,可以帮助开发者更好地理解和使用Hive进行数据分析和处理。

    hive开发指南 -1.0.pdf

    使用Hive时有一些需要注意的点,比如字符集问题、数据压缩、count(distinct)优化、JOIN操作的处理、DML操作的注意事项、HAVING子句的使用以及子查询的处理。 Hive的优化与技巧部分则涉及全排序的实现、笛卡尔积的...

    hive的学习资料

    5. 使用 Hive 注意事项 涵盖字符集、压缩、COUNT(DISTINCT)、JOIN、DML 操作、HAVING、子查询、JOIN 中的 NULL 处理、分号字符等。 6. 优化 包括 Hadoop 计算框架的特性、常用优化手段、全排序、笛卡尔积、EXIST ...

    Hive用户指南 Hive user guide 中文版

    #### 八、使用Hive注意事项 - **字符集问题**:在处理文本数据时需要注意字符集的匹配。 - **压缩**:合理选择压缩算法可以显著减少存储空间和提高查询性能。 - **COUNT(DISTINCT)**:在使用该函数时可能会遇到性能...

Global site tag (gtag.js) - Google Analytics