Linux bash: comparar cadenas

varuk

Hola.

Estoy haciendo un script para linux y algo falla. Resulta que recorro dos arrays, ambos contienen nombres de ficheros de dos directorios. Cuando coinciden el nombre, entonces lo que quiero es que en ese indice del array ponga una marca, escriba "X", por ejemplo, para que así luego al imprimir el array no salga ese fichero, ya que se mostrarán solo los que son diferentes en ambos directorios.

El código:

http://pastebin.com/TGvj0i6Q

El prolema es que algo está saliendo mal porque imprime esto

XX
fichero1
norepetido

y debería imprimir esto otro, que son tres nombres de ficheros:

esto_tb_sale
fichero1
norepetido

(He hecho un simple for para que imprima ambos arrays antes de hacer esa comprobación y se imprimen bien, pero no sé en la comparacion del IF algo está fallando...)

Gracias.

H

¿Eres de la facultad de informática de espinardo? estoy haciendo el mismo guión shell que tú , concretamente de la sesión 2 y que se llama "diffd" pero me he dado cuenta que no hace bien las comparaciones entre nombres. ¿Lo has conseguido resolver?

1 respuesta
varuk

#2 Podría ser... o no.

Pues en ese ejercicio exactamente se me atranca eso, no sé la causa. Lo dejé ya pasado un poco por alto y volver a él más adelante. Lo tengo puesto por varios foros, a ver si en algun contestan.

H

Aquí te dejo la solución funcional al 100% , ha costado lo suyo pero cumple lo que pide el enunciado
http://pastebin.com/SzvxLD2P

1 respuesta
varuk

#4 Demasiado rebuscado eh. Eso no te da tiempo a hacerlo en 30 minutos, bueno tiempo si da pero pensarlo y ponerte a hacerlo... 170 líneas son muchas líneas.

H

Según controles el shell , pero para hacer lo que pide el enunciado y que funcione bien porque si tienen espacios los ficheros o otros caracteres peta si no lo sacas a un fichero externo y aunque sean 170 líneas realmente las funciones de intersección y común son practicamente iguales

Usuarios habituales