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.

Comparar dos listas en un pipeline de Jenkins

En mi pipeline, tengo dos listas y quiero compararlas e imprimir el resultado correspondiente.

1- println abc
[aaa, bbb, ccc]

2- println xyz
[bbb, ccc]

Necesito imprimir el resultado en un archivo de la siguiente manera:

aaa no presente en xyz
bbb presente
ccc presente

El código que intenté es:

def test []
test = abc - xyz
println test
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada, puedes usar el siguiente fragmento de código:

    def abc = ["aaa", "bbb", "ccc"]
    def xyz = ["bbb", "ccc"]
    
    def present = []
    def not_present = []
    
    // recorrer abc
    abc.each{ item ->
        // verificar si el elemento existe en xyz
        if(xyz.contains(item)){
            present.add(item + " present")
        } else{
            not_present.add(item + " not present in xyz")
        }
    }
    
    // imprimir la salida
    println not_present.join('\n')
    println present.join('\n')
    

    Esto te dará la salida que necesitas:

    aaa not present in xyz
    bbb present
    ccc present
    

    Aquí creamos dos listas vacías llamadas present y not_present. Recorremos la lista abc y verificamos si cada elemento existe en la lista xyz utilizando el método contains(). Si es así, lo agregamos a la lista present con un mensaje, de lo contrario lo agregamos a la lista not_present con otro mensaje. Finalmente, imprimimos ambas listas unidas por un caracter de nueva línea utilizando el método join().

Comments are closed.