Comparar cadenas
Publicado por Alejandro (1 intervención) el 14/07/2011 20:59:45
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.
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
for i in `seq 0 1 ${#array_dir2[@]}` #Array más corto en primer lugar
do
for j in `seq 0 1 ${#array_dir1[@]}` #Array más largo dentro del anidamiento
do
if [ ${array_dir1[$i]}==${array_dir2[$j]} ]
then
array_dir1[$i]="X"
array_dir2[$j]="XX"
break
fi
done
done
for i in `seq 0 1 ${#array_dir2[@]}`
do
if [ ${array_dir2[$i]}!="XX" ]
then
echo ${array_dir2[$i]}
fi
done
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.
Valora esta pregunta


0