-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要注意这个潜规则,很无语。
分享到:
相关推荐
6. **注意事项**: - "du" 计算的是实际占用的磁盘空间,而不是文件的逻辑大小。硬链接文件在 "du" 中只会计算一次,因为它们共享相同的物理存储。 - 对于大目录,"du" 可能需要一些时间来完成,因为它必须遍历...
#### 三、注意事项 - 在配置文件中设置的参数可以根据实际需求进行调整,例如最大连接数(`max_connections`)、查询缓存大小(`query_cache_size`)等。 - 初始化过程中生成的临时密码非常重要,用于首次登录MySQL时...
### Hive操作指南知识点详解 ...以上是对“Hive操作指南”的详细介绍,包括Hive的架构、基本操作、高级特性以及使用注意事项等内容。通过这些内容的学习,可以帮助开发者更好地理解和使用Hive进行数据分析和处理。
使用Hive时有一些需要注意的点,比如字符集问题、数据压缩、count(distinct)优化、JOIN操作的处理、DML操作的注意事项、HAVING子句的使用以及子查询的处理。 Hive的优化与技巧部分则涉及全排序的实现、笛卡尔积的...
5. 使用 Hive 注意事项 涵盖字符集、压缩、COUNT(DISTINCT)、JOIN、DML 操作、HAVING、子查询、JOIN 中的 NULL 处理、分号字符等。 6. 优化 包括 Hadoop 计算框架的特性、常用优化手段、全排序、笛卡尔积、EXIST ...
#### 八、使用Hive注意事项 - **字符集问题**:在处理文本数据时需要注意字符集的匹配。 - **压缩**:合理选择压缩算法可以显著减少存储空间和提高查询性能。 - **COUNT(DISTINCT)**:在使用该函数时可能会遇到性能...