J'en ai rêvé, Harel Ben-Attia l'a fait.
Utiliser des fichiers texte comme des tables SQL.
C'est ce que propose de faire la commande q.
Ce programme est développé en python.
Pour fonctionner, il utilise donc python 2.4 (minimum) et le module sqlite3.
Il est possible d'utiliser des fichiers texte dont le séparateur de colonne (par défaut) est l'espace.
N'importe quel autre séparateur est utilisable à condition de l'indiquer à l'aide de l'option -d
Si le fichier texte contient une ligne d'en-tête, il est possible de l'indiquer à l'aide de l'option -H et cela permet d'utiliser les en-têtes comme nom de colonne dans les requêtes SQL.
L'option -z permet d'utiliser des fichiers compressés avec gzip.
Le projet est disponible ici.
Un paquet RPM est disponible pour l'installation.
Pour les distributions Debian/Ubuntu, utiliser le programme alien pour convertir le paquet RPM en DEB.
Pour l'installtion, sous Debian/Ubuntu, après conversion du paquet :
$ dpkg --install q_xxx_all.deb
Les différentes utilisations possibles :
Utiliser la commande q derrière un pipe
Par exemple, la commande ls -l retourne le contenu d'un répertoire structuré en colonne.
Par conséquent, du fait que le retour de cette commande soit structuré, il est possible de l'envoyer à la commande q via un pipe et d'y effectuer des petites requêtes SQL.
$ ls -l /var/log
-rw-r--r-- 1 root root 3554 Mar 12 14:09 alternatives.log
-rw-r--r-- 1 root root 1208 Feb 21 10:51 alternatives.log.1
-rw-r--r-- 1 root root 246 Jan 27 18:17 alternatives.log.2.gz
-rw-r--r-- 1 root root 385 Jan 6 21:10 alternatives.log.3.gz
-rw-r--r-- 1 root root 539 Nov 22 08:16 alternatives.log.4.gz
-rw-r--r-- 1 root root 276 Oct 24 16:47 alternatives.log.5.gz
-rw-r--r-- 1 root root 948 Sep 23 22:35 alternatives.log.6.gz
drwxr-xr-x 2 root root 4096 Mar 1 05:00 apt
-rw-r----- 1 syslog adm 370529 Mar 12 14:16 auth.log