Splunk Sort 命令

17 Mar 2025 | 4 分钟阅读

在本节中,我们将学习 Splunk 中的 Sort 命令、其语法、示例、必需参数、可选参数,以及 Splunk Sort 命令中的一些字段选项。

描述

sort 命令按定义的字段对所有信息进行排序。 在给定字段中不存在的测试被视为具有该字段的最小或最大值,无论排序是降序还是升序。

如果数字是 sort 命令的第一个参数,则最多返回几个数字,按顺序排列。 如果未指定数字,则使用默认限制 10000。 当我们声明数字 0 时,将返回所有测试。

语法

此命令所需的语法以粗体显示。

必需参数

<排序依据子句>

语法: ( - | + ) <排序字段>, ( - | + ) <排序字段> ...

描述: 要排序的字段列表以及排序顺序。 使用减号 (-) 表示降序,加号 (+) 表示升序。 定义多个区域时,用逗号分隔字段名称。

可选参数

<计数>

语法: <整数>

描述: 指定我们希望从排序结果中返回的结果数量。 在Splunk中,如果未声明计数,则使用默认限制 10000。 如果指定 0,则返回所有结果。

根据返回的结果数量,使用 sort 0 可能会对输出产生负面影响。

默认 10000

desc

语法: d | desc

描述: 关闭测试顺序。 如果指定了多个字段,则按定义字段的顺序反转这些字段中值的顺序。 例如,如果定义了三个字段,则 desc 参数反转第一个字段中的值顺序。

现在,在第二个字段中,反转第一个字段中每个重复值集合的相应值的顺序。 在第三个字段中,反转第二个位置中每个重复值集合的相应值的顺序。

排序字段选项

<排序字段> 选项

语法: <字段> | auto(<字段>) | str(<字段>) | ip(<字段>) | num(<字段>)

描述: 我们可以定义的 <排序字段> 的选项。

<字段> 选项

语法: <字符串>

描述: 要开始的字段名称。

auto 选项

语法: auto(<字段>)

描述: 确定如何自动排序字段值。

Ip 选项

语法: ip(<字段>)

描述: 将字段值解释为 IP 地址。

num 选项

语法: num(<字段>)

描述: 将字段值视为数字。

Str 选项

语法: str(<字段>)

描述: 将字段值解释为字符串,并按字母顺序排列这些值。

用途

默认情况下,sort 尝试自动确定其排序内容。 如果该扇区假定为数值,则整理系列编号为数字。 如果该字段中假定为IP 地址值,则程序集序列用于 IP。 然后,整理序列按字典顺序排列。 几个具体的例子是

  • 字母列表的字典排序。
  • 标点符号行的字典排序。
  • 数字数据将按预期排序为数字,并且排序顺序设置为升序或降序。
  • 字母数字字符串根据第一个字符的数据类型进行排序。 如果字符串以数字开头,则根据数字本身以数字方式对字符串进行排序。 否则,字符串将按字典顺序排序。
  • 包含字母数字和标点符号字符的字符串应以与字母数字字符串相同的方式进行排序。

在默认的自动模式下,对于一个扇区,在任何时候比较的每对值之间计算排序顺序。 这意味着对于某些值对,顺序可能是字典顺序,而对于其他值对,顺序可能是数字。

例如,如果我们排序 10.1 > 9.1,但 10.1.a < 9.1.a,按降序排列。

字典顺序

字典顺序基于计算机内存中用于编码对象的值对对象进行排序。 在 Splunk 应用程序中,它几乎或总是 UTF-8 编码,它是 ASCII 的超集。

  • 数字根据第一位数字进行排序,并在对应关系之前进行排序。 例如,数字 10、9、70、100 按字典顺序排序为 10、100、70、9。
  • 大写字母在小写字母之前排序。
  • 字典顺序不是常规符号。 某些符号在数值之前排序。 其他符号在字母之前或之后排序。

自定义排序顺序

我们可以指定覆盖字典顺序的自定义排序顺序。

基本示例

1. 使用 Sort 选项来确定字段的排序

按“ip”值的升序筛选结果,然后按“url”值的降序筛选结果。

2. 指定要排序的结果数

按字段“size”的降序,然后按值“source”的升序对前 100 个结果进行排序。 该示例列出了每个字段中的数据类型。 字段“scale”包含数字,字段“source”包含字符串。

3. 指定降序和升序排序的命令

按字段“time”的升序,然后按属性“host”的降序对结果进行排序。

4. 更改排序事件的时间格式

调整事件的时间格式,并按使用 eval 命令生成的 time 字段的降序对结果进行排序。

5. 返回最新发生的事件

返回到当前事件