Posts Tagged ‘AWK’
Comparando versiones
Luego de leer una nota sobre comparar versiones en la lista de correos de SourceMage, decidí buscar métodos para comparar versiones, y la primera cosa que se me vino a la mente fué usar un simple shell-script, lamentablemente el tema es un poco más complicado que eso, y no resultó muy práctico que digamos.
Luego de discutir sobre el tema por un rato con FCR, sugirió hacer algo muy sucio con ls -v, así que recordé que ls usa la función strverscmp() de glibc, lamentablemente no es estándar, y hacer un programa en C para esto no me hacía mucha gracia, así que decidí remangarme e implementar algo similar en AWK:
#!/bin/awk -f
BEGIN {
FS = "[-_.]"
la = split(ARGV[1], a)
lb = split(ARGV[2], b)
l = (la < lb) ? la : lb
o = la - lb
for (i = 1; i <= l; i++) {
if (a[i] != b[i]) {
o = a[i] - b[i]
break
}
}
print o
}
¿No es hermoso?