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.

¿Cómo hacer una comparación de caracteres en bash?

Digamos que tengo una columna que muestra 2/2 y quiero comparar si el lado izquierdo del separador que en este caso es / coincide con el lado derecho. ¿Hay alguna manera de lograr esto en bash?

Un posible método es utilizando IFS, pero eso requiere almacenar los valores en variables y luego compararlos utilizando la instrucción IF. Estoy tratando de lograr esto utilizando un comando de una sola línea.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible lograr esta comparación en una sola línea de comando utilizando los comandos cut y test. El comando cut se utiliza para extraer el lado izquierdo y derecho del separador / y luego podemos usar el comando test para comparar si son iguales.

    El comando se vería así:

    test $(cut -d'/' -f1 <<< "2/2") = $(cut -d'/' -f2 <<< "2/2") && echo "Coincidencia" || echo "Sin coincidencia"
    

    En este comando, cut -d'/' -f1 extrae el lado izquierdo del separador / y cut -d'/' -f2 extrae el lado derecho. El símbolo <<< se utiliza para pasar la cadena 2/2 como entrada al comando cut.

    El test $(cut -d'/' -f1 <<< "2/2") = $(cut -d'/' -f2 <<< "2/2") compara el lado izquierdo y derecho del separador utilizando el comando test. Si son iguales, se ejecuta el comando después de &&, que es echo "Coincidencia", de lo contrario, se ejecuta el comando después de ||, que es echo "Sin coincidencia".

    Tenga en cuenta que, si desea comparar varias filas o columnas, puede usar este comando en un bucle y cambiar la cadena 2/2 por el valor real de la columna.

Comments are closed.