我必须在我的课堂实验室的文件中对 GPA 进行排序。老师用的是putty,对于我们这些在课堂上选择使用Ubuntu的人来说,升序降序的命令不知道怎么做。
这是我的 list.txt:
a 100
b 300
A 50
e 75
1 10
Run Code Online (Sandbox Code Playgroud)
我运行了以下命令:
sort -k2,2 list.txt
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
1 10
a 100
b 300
A 50
e 75
Run Code Online (Sandbox Code Playgroud)
我试图只对第二列进行排序。根据维基百科,我上面的命令应该给我下面的结果。
a 10
b 50
A 75
e 100
1 300
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我有一个看起来像这样的文件:
7 C00000002 score: -41.156 nathvy = 49 nconfs = 2251
8 C00000002 score: -39.520 nathvy = 49 nconfs = 3129
9 C00000004 score: -38.928 nathvy = 24 nconfs = 150
10 C00000002 score: -38.454 nathvy = 49 nconfs = 9473
11 C00000004 score: -37.704 nathvy = 24 nconfs = 156
12 C00000001 score: -37.558 nathvy = 41 nconfs = 51
2 C00000002 score: -48.649 nathvy = 49 nconfs = 3878
3 C00000001 score: -44.988 nathvy = 41 nconfs = …
Run Code Online (Sandbox Code Playgroud) 我希望我可以按字母顺序排列 GNOME 应用程序菜单,但我在网上找不到任何有关此内容的信息...
是否有任何选项gsettings
或脚本可以执行此操作?
这是我的问题:如何通过命令行按文件扩展名对文件进行排序?
我必须对在 shell 脚本中作为参数给出的文件中的所有单词进行排序。这是单线:
tr [:space:] '\n' <$1 | sort -nrk2,2 | uniq -c |sed 's/^ \+//g'
Run Code Online (Sandbox Code Playgroud)
基本上,如果我的文件中有这样的内容:
bla bla bla bla hu hu hu
Run Code Online (Sandbox Code Playgroud)
它会输出
4 bla
3 hu
Run Code Online (Sandbox Code Playgroud)
我希望他们像
bla 4
hu 3
Run Code Online (Sandbox Code Playgroud) 内容fred
为:
START
test
TEST
tEST
END
Run Code Online (Sandbox Code Playgroud)
从 bash 终端sort fred
返回:
END
START
test
tEST
TEST
Run Code Online (Sandbox Code Playgroud)
都好。现在我输入sort fred -f
相同的结果sort fred
。但因为TEST
是提前tEST
,预期的结果是:
END
START
test
TEST
tEST
Run Code Online (Sandbox Code Playgroud)
如何保留两个“相等”字符串的行顺序?使用 Ubuntu 18.04 和 bash 4.4.20(1)-release。
我有一个包含行的文件,其中一些以!
字符开头,一些以字符?
开头,一些以空格 (
) 字符开头。第二个字符始终是字母表中的字母。
当我尝试使用sort
coreutils 中的 bash 命令时,这似乎忽略了第一个字符,并仅根据第二个字符进行排序。
这让我非常惊讶,因为我认为排序会根据标点符号的 ascii 值来处理标点符号,并将所有行集中!
在一起,然后将所有?
行集中在一起,等等。
特别是,文档说有一个-d
选项,它明确指示sort
命令忽略此类标点符号。但我想要的是相反的行为,并且没有选择“逆转”这种行为。就好像这个-d
选项已经以某种方式“烘焙”出来了。
我已经检查过,据我所知,我没有在某个地方定义了可能会-d
意外激活该标志的别名。
这是一个错误吗sort
?(coreutils v8.32)。有没有办法强制它不按字典顺序排序,而是按严格的 ascii 值排序?
操作系统:Linux Mint 21.1(基于 ubuntu jammy,据我所知),以防相关
编辑:根据要求提供区域设置和 MVP
$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
$ echo '
> !a
> ?b
> c
> !f
> e
> ?d' | sort
!a
?b …
Run Code Online (Sandbox Code Playgroud) 我知道这是一个看似奇怪的问题,但我想更好地理解使用 Linux 实用程序,所以我将要求一些对我来说似乎相当复杂的东西来更好地理解工作中的机制。
考虑到我们系统中的所有头文件,我如何在终端中显示基于其中定义的宏数量的这些文件的排序列表?
我有一个文件:
$ cat file
1 c
8 a
1 b
5 f
Run Code Online (Sandbox Code Playgroud)
我认为sort
开头的命令比较所有行的第一个字段并对它们进行排序,然后对于这些行具有相同的第一个字段,然后再次开始对第二个字段进行排序,如下所示:
$sort file
1 b
1 c
5 f
8 a
Run Code Online (Sandbox Code Playgroud)
我读到了选项k 1
和k 1,1
:之间的区别:k 1
排序键可能会继续到行尾,但k 1,1
它应该只对第一个字段进行排序而不考虑其他字段,但是:
$sort -k 1 file
1 b
1 c
5 f
8 a
$sort -k 1,1 file
1 b
1 c
5 f
8 a
Run Code Online (Sandbox Code Playgroud)
为什么的输出sort
= sort k 1
=sort k 1,1
等于?
我认为输出sort k 1,1 file
应该是
1 …
Run Code Online (Sandbox Code Playgroud) sort ×10
command-line ×7
bash ×2
grep ×2
appmenu ×1
coreutils ×1
gnome ×1
gnome-shell ×1
menu ×1
system-info ×1