夜の抜ける

A blog about anything and everything :P.

Posts Tagged ‘AWK

Comparando versiones

without comments

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?

Written by Ismael Luceno

2008-04-12 at 03:26

Posted in Scripts & Snippets

Tagged with