Linux 在cut中分隔符的含义是什么?为什么在这个命令中它要排序两次?

Linux 在cut中分隔符的含义是什么?为什么在这个命令中它要排序两次?,linux,sorting,unix,cut,uniq,Linux,Sorting,Unix,Cut,Uniq,我正试图找到这个命令的原因,正如我所知,非常基本的我发现了这一点 last | cut -d" " -f 1 | sort | uniq -c | sort last=last通过文件/var/log/wtmp(或由-f标志指定的文件)进行搜索,并显示自该文件创建以来登录(和注销)的所有用户的列表 cut用于显示所需的列 选项-d指定输入文件中使用的字段分隔符 -f指定要提取的字段 1.我想这是我不确定的结果 然后是排序,然后是 Uniq命令有助于删除或检测文件中的重复条目。本教程介绍了几个最

我正试图找到这个命令的原因,正如我所知,非常基本的我发现了这一点

last | cut -d" " -f 1 | sort | uniq -c | sort
last
=last通过文件/var/log/wtmp(或由-f标志指定的文件)进行搜索,并显示自该文件创建以来登录(和注销)的所有用户的列表

cut
用于显示所需的列

选项
-d
指定输入文件中使用的字段分隔符

-f
指定要提取的字段

1.我想这是我不确定的结果

然后是排序,然后是

Uniq
命令有助于删除或检测文件中的重复条目。本教程介绍了几个最常用的uniq命令行选项,这些选项可能会对您有所帮助


如果有人能解释这个命令,并解释为什么有两种类型,我将不胜感激。

你对
cut
的解释是正确的:
cut-d”“-f1
(在
f
之后不需要空格)根据
d
elimiter
(空格)获取流的第一个
f
字段

那么为什么要进行排序| uniq-c | sort

从man uniq的
开始:

注:“uniq”不检测重复线,除非它们相邻。 您可能希望首先对输入进行排序,或者使用“sort-u”而不使用“uniq”。 此外,比较遵守“LC_COLLATE”指定的规则

这就是为什么在管道传输到
uniq
之前需要对管线进行排序。最后,由于未对uniq
输出进行排序,您需要再次排序以首先查看重复次数最多的项


请参见具有重复项的给定文件的
排序
uniq-c
示例:

$ seq 5 >>a
$ seq 5 >>a
$ cat a
1
2
3
4
5
1
2
3
4
5

$ sort a | uniq -c | sort <--- no repeated matches
      2 1
      2 2
      2 3
      2 4
      2 5

$ uniq -c a | sort <---- repeated matches
      1 1
      1 1
      1 2
      1 2
      1 3
      1 3
      1 4
      1 4
      1 5
      1 5

这将在[]数组中存储第一列的值,并在找到更多值时增加计数器。在
END{}
块中,它打印未排序的结果,因此您可以再次通过管道进行
sort

您对
cut
的解释是正确的:
cut-d”“-f1
(在
f
之后不需要空格)根据
d
elimiter“(空格)获取流的第一个
f
字段

那么为什么要进行排序| uniq-c | sort

从man uniq的
开始:

注:“uniq”不检测重复线,除非它们相邻。 您可能希望首先对输入进行排序,或者使用“sort-u”而不使用“uniq”。 此外,比较遵守“LC_COLLATE”指定的规则

这就是为什么在管道传输到
uniq
之前需要对管线进行排序。最后,由于未对uniq
输出进行排序,您需要再次排序以首先查看重复次数最多的项


请参见具有重复项的给定文件的
排序
uniq-c
示例:

$ seq 5 >>a
$ seq 5 >>a
$ cat a
1
2
3
4
5
1
2
3
4
5

$ sort a | uniq -c | sort <--- no repeated matches
      2 1
      2 2
      2 3
      2 4
      2 5

$ uniq -c a | sort <---- repeated matches
      1 1
      1 1
      1 2
      1 2
      1 3
      1 3
      1 4
      1 4
      1 5
      1 5

这将在[]数组中存储第一列的值,并在找到更多值时增加计数器。在
END{}
块中,它打印未排序的结果,因此您可以再次通过管道进行
sort

您对
cut
的解释是正确的:
cut-d”“-f1
(在
f
之后不需要空格)根据
d
elimiter“(空格)获取流的第一个
f
字段

那么为什么要进行排序| uniq-c | sort

从man uniq的
开始:

注:“uniq”不检测重复线,除非它们相邻。 您可能希望首先对输入进行排序,或者使用“sort-u”而不使用“uniq”。 此外,比较遵守“LC_COLLATE”指定的规则

这就是为什么在管道传输到
uniq
之前需要对管线进行排序。最后,由于未对uniq
输出进行排序,您需要再次排序以首先查看重复次数最多的项


请参见具有重复项的给定文件的
排序
uniq-c
示例:

$ seq 5 >>a
$ seq 5 >>a
$ cat a
1
2
3
4
5
1
2
3
4
5

$ sort a | uniq -c | sort <--- no repeated matches
      2 1
      2 2
      2 3
      2 4
      2 5

$ uniq -c a | sort <---- repeated matches
      1 1
      1 1
      1 2
      1 2
      1 3
      1 3
      1 4
      1 4
      1 5
      1 5

这将在[]数组中存储第一列的值,并在找到更多值时增加计数器。在
END{}
块中,它打印未排序的结果,因此您可以再次通过管道进行
sort

您对
cut
的解释是正确的:
cut-d”“-f1
(在
f
之后不需要空格)根据
d
elimiter“(空格)获取流的第一个
f
字段

那么为什么要进行排序| uniq-c | sort

从man uniq的
开始:

注:“uniq”不检测重复线,除非它们相邻。 您可能希望首先对输入进行排序,或者使用“sort-u”而不使用“uniq”。 此外,比较遵守“LC_COLLATE”指定的规则

这就是为什么在管道传输到
uniq
之前需要对管线进行排序。最后,由于未对uniq
输出进行排序,您需要再次排序以首先查看重复次数最多的项


请参见具有重复项的给定文件的
排序
uniq-c
示例:

$ seq 5 >>a
$ seq 5 >>a
$ cat a
1
2
3
4
5
1
2
3
4
5

$ sort a | uniq -c | sort <--- no repeated matches
      2 1
      2 2
      2 3
      2 4
      2 5

$ uniq -c a | sort <---- repeated matches
      1 1
      1 1
      1 2
      1 2
      1 3
      1 3
      1 4
      1 4
      1 5
      1 5

这将在[]数组中存储第一列的值,并在找到更多值时增加计数器。在
END{}
块中,它打印未排序的结果,因此您可以再次通过管道进行排序
sort

uniq-c用于创建频率直方图。第二种排序的原因是,您正在按频率顺序对柱状图进行排序


第一种排序的原因是,当确定行是否唯一时,uniq仅将每一行与其前一行进行比较。

uniq-c用于创建频率直方图。第二种排序的原因是,您正在按频率顺序对柱状图进行排序


第一种排序的原因是,当确定行是否唯一时,uniq仅将每一行与其前一行进行比较。

uniq-c用于创建频率直方图。再