es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

splunk reemplaza la palabra en la subbúsqueda

Tengo una búsqueda que contiene muchos subbúsquedas y están en el mismo formato como:

| union 
    [| search index=idx_dash 
     | spath Data.AA{} AA
     | mvexpand AA | eval _raw=AA
     | spath Key output=Key | spath Value output=Value | where Key="**aaa**" 
     | rex mode=sed field=Value "s/\+/e+/g" | eval Value=tonumber(Value)
     | xyseries Key Value
     | eval **"Aa"** = 'aa' ]
    [| search index=idx_dash 
     | spath Data.BB{} BB
     | mvexpand BB | eval _raw=BB
     | spath Key output=Key | spath Value output=Value | where Key="**bbb**" 
     | rex mode=sed field=Value "s/\+/e+/g" | eval Value=tonumber(Value)
     | xyseries Key Value
     | eval **"Bb"** = 'bb' ]

¿Hay alguna forma de reemplazar la palabra clave en la subbúsqueda para que pueda usar una subbúsqueda para que sea útil? Gracias por la ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, una forma de reemplazar las palabras clave en la subbúsqueda es usando variables de plantilla. Aquí tienes un ejemplo de código:

    | makeresults 
    | eval search_template = "| search index=idx_dash 
                                | spath Data.{field}{} {field}
                                | mvexpand {field} | eval _raw={field}
                                | spath Key output=Key | spath Value output=Value | where Key=\"{key}\"
                                | rex mode=sed field=Value \"s/\\+/e+/g\" | eval Value=tonumber(Value)
                                | xyseries Key Value
                                | eval \"{abbrev}\" = '{value}' "
    | eval fields = "AA,aaa,Aa BB,bbb,Bb" 
    | makemv delim=" " fields 
    | mvexpand fields 
    | eval field = mvindex(fields, 0), key = mvindex(fields, 1), abbrev = mvindex(fields, 2), value = mvindex(fields, 3) 
    | eval field_search = replace(search_template, "{field}", field) 
    | eval final_search = replace(field_search, "{key}", key) 
    | eval final_search = replace(final_search, "{abbrev}", abbrev)
    | eval final_search
    

    En este código, utilizamos variables de plantilla {field}, {key}, {abbrev}, y {value} para reemplazar las palabras clave en la subbúsqueda. Primero creamos una variable search_template que contiene la subbúsqueda con las variables de plantilla. Luego creamos una variable fields que contiene el campo, clave, abreviatura, y valor para cada subbúsqueda. Utilizamos makemv y mvexpand para separar fields en campos separados. Luego usamos eval para reemplazar las variables de plantilla con los valores correspondientes para cada subbúsqueda. La salida final es una lista de subbúsquedas con las palabras clave reemplazadas por los valores especificados en fields.

    Ten en cuenta que en este ejemplo de código, asumimos que los campos, claves, abreviaturas y valores para cada subbúsqueda son conocidos de antemano. Si este no es el caso, es posible que debas ajustar el código para generar dinámicamente estos valores en función de tus requisitos de búsqueda.

Comments are closed.