gpt4 book ai didi

linux - 使用 sort -k linux

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:23 25 4
gpt4 key购买 nike

老师给了我们一个代码:

sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distros.txt > distros-by-date.txt

应该按日期对这个 distros.txt 文件进行排序

Fedora:10:11/25/2008
SUSE:11.0:06/19/2008
Ubuntu:8.04:04/24/2008
Fedora:8:11/08/2007
SUSE:10.3:10/04/2007
Ubuntu:6.10:10/26/2006
Fedora:7:05/31/2007
Ubuntu:7.10:10/18/2007
Ubuntu:7.04:04/19/2007
SUSE:10.1:05/11/2006
Fedora:6:10/24/2006
Fedora:9:05/13/2008
Ubuntu:6.06:06/01/2006
Ubuntu:8.10:10/30/2008
Fedora:5:03/20/2006

假设代码有效,这应该是输出的简化版本

Fedora 10
Ubuntu 8.10
SUSE 11.0
Fedora 9
Ubuntu 8.04
Fedora 8
Ubuntu 7.10
SUSE 10.3
Fedora 7
Ubuntu 7.04

问题是,它不起作用,我很难找出问题所在。我读过它,但示例只使用了n,那么br呢?有时-k和键之间也有空格,有时没有;最后,有时键之间有一个点 (3.7),而不是逗号 (3,7)。我尝试阅读手册页,但我无法理解它,有人可以解释一下吗?

如果这很重要,有时他使用 Mac 并导致代码出现问题,也许是操作系统的问题?

最佳答案

您没有字段分隔符规范来告诉 sort 它应该使用冒号:

sort -t: -k 3.7nbr -k 3.1nbr -k 3.4nbr

并且,要获得简化的输出,您只需要第一列和第二列,如以下记录所示:

$ sort -t: -k 3.7nbr -k 3.1nbr -k 3.4nbr inputfile | awk -F: '{print $1" "$2}'
Fedora 10
Ubuntu 8.10
SUSE 11.0
Fedora 9
Ubuntu 8.04
Fedora 8
Ubuntu 7.10
SUSE 10.3
Fedora 7
Ubuntu 7.04
Ubuntu 6.10
Fedora 6
Ubuntu 6.06
SUSE 10.1
Fedora 5

就标志而言,n 表示数字比较,b 表示忽略前导空格(大概涵盖 12/4/2022 等情况),r 表示逆序(从最新到最早)。

关于linux - 使用 sort -k linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27181161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com