Bash中如何使用sort命令实现多条件混合升降序排序
Linux sort多字段混合升降序排序解决方案
你遇到的问题核心是sort命令的-r参数默认作用于全局所有排序键,只需要为每个排序键单独指定排序规则即可解决,调整后的命令如下:
sort -t"," -k3,3nr -k2,2 "$FILE" > "$HOME"/people.txt
注:同时去掉了无意义的cat $FILE |管道写法,sort命令本身支持直接读取文件路径,减少不必要的进程开销
参数说明
-t",":全局指定字段分隔符为逗号-k3,3nr:指定第一个排序键为第3个字段(对应age字段),其中n表示按数字类型排序,r表示仅对当前键启用降序排序,排序范围仅限定在第3个字段内-k2,2:指定第二个排序键为第2个字段(对应surname字段),未额外指定排序方向时默认使用升序排序,不受其他键的降序参数影响
内容的提问来源于stack exchange,提问作者vojtam
相关产品推荐
相关产品推荐

