在我的 Splunk 搜索结果数据中,有些对象具有 ID、Type、Name 字段,有些对象具有 ID、Type、UnitId 字段。对于类型等于“A1”的对象,名称字段存在,但对于类型等于“A2”的对象,名称字段不存在,但存在 UnitId 字段。我想在 Splunk 表中显示 ID、类型和名称列,但不显示 UnitId 列。问题是,对于类型等于“A2”的对象,名称列的值将为空字符串。因此,对于每个表行,如果类型等于“A2”,我想使用 eval 函数将 Name 列中的空字符串替换为 UnitId 列的值。
对于 Type 等于“A2”且 Name 为空字符串的行,我尝试使用以下脚本将空字符串替换为 UnitId 列值,并仅显示 ID、Type 和 Name 列,但显示 eval脚本中的函数不起作用。
index="demo_data" sourcetype="data.zip"
| fields ID Type Name UnitId
| table ID Type Name|eval Name = if(isnull('Name') AND Type="A2", 'UnitId', 'Name')
我注意到,如果我在表中包含 UnitId 列,那么我的 eval 函数就可以工作,但如果没有它,它就无法工作。所以我的问题是如何在表中包含 UnitId 列,以确保它仍然可供 eval 函数使用,但将其隐藏,以便用户看不到它。