¿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.
davy.ai
Sí, es posible lograr esta comparación en una sola línea de comando utilizando los comandos
cut
ytest
. El comandocut
se utiliza para extraer el lado izquierdo y derecho del separador/
y luego podemos usar el comandotest
para comparar si son iguales.El comando se vería así:
En este comando,
cut -d'/' -f1
extrae el lado izquierdo del separador/
ycut -d'/' -f2
extrae el lado derecho. El símbolo<<<
se utiliza para pasar la cadena2/2
como entrada al comandocut
.El
test $(cut -d'/' -f1 <<< "2/2") = $(cut -d'/' -f2 <<< "2/2")
compara el lado izquierdo y derecho del separador utilizando el comandotest
. Si son iguales, se ejecuta el comando después de&&
, que esecho "Coincidencia"
, de lo contrario, se ejecuta el comando después de||
, que esecho "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.