Le champ nommé "colonnes" permet de définir selon quel critère telle
ou telle partie du texte va aller dans une même colonne ou passer dans les colonnes
suivantes. Cette définition s'effectue suivant la chaîne de caractères que l'on entre
dans ce champ. Voici la description de sa grammaire :
la chaîne doit se présenter sous une forme de séries de séquences séparées par des
points virgules.
<sequence1>;<sequence2>;<sequence3>
Chaque séquence a pour but de trouver ce qui va séparer le texte en colonnes.
Une séquence peut prendre deux formes :
Le caractère !, placé en début de séquence, sert à indiquer que la colonne qui devrait être normalement générée par la séquence n'apparaîtra pas dans le tableau. Il permet donc de 'sauter' des informations.
Le caractère *, placé après une séquence de type 'chaîne de caractères', sert à indiquer que le séparateur de colonne est la chaîne de caractères trouvée dans le texte importé, une fois ou plus.
La séparation en ligne du fichier importé s'effectue au premier caractère \n (new line) ou \r (carriage return) ou \n\t (new line + carriage return) rencontré, après que chaque séquence ait été vérifiée. Deux possibilités s'offrent à vous, si le champ "colonnes" se termine par :
Exemple :
Pour importer un fichier last.txt généré par la commande :
$ last > last.txt
dont voici un rendu :
register ttyq0 Fri Apr 12 14:45 - 14:46 (00:00)
rlogin ttyq0 Fri Apr 12 14:45 - 14:45 (00:00)
support ttyq0 Fri Apr 12 14:45 - 14:45 (00:00)
rlogin ttyq0 Fri Apr 12 14:45 - 14:45 (00:00)
axene ttyq0 Fri Apr 12 14:43 - 14:45 (00:01)
rlogin ttyq0 Fri Apr 12 14:43 - 14:43 (00:00)
[....]
rc2 Fri Apr 12 06:18 - 06:18 (00:00)
rc2 Fri Apr 12 06:17 - 06:18 (00:00)
uadmin Fri Apr 12 06:16 - 06:17 (00:01)
echo Fri Apr 12 06:16 - 06:16 (00:00)
echo Fri Apr 12 06:16 - 06:16 (00:00)
rc0 Fri Apr 12 06:16 - 06:16 (00:00)
rc0 Fri Apr 12 06:16 - 06:16 (00:00)
LOGIN console Fri Apr 12 06:16 - 06:18 (00:02)
LOGIN console Thu Apr 11 06:19 - 06:16 (23:56)
getty Thu Apr 11 06:19 - 06:16 (23:56)
rc2 Thu Apr 11 06:19 - 06:19 (00:00)
[....]
on peut utiliser la chaîne suivante pour le champ "colonnes" :
10;13;" ";" "*;" ";" ";!"-
";" "*;!"(";")";
Explications :
10;13;" ";" "*;" ";" ";!"- ";" "*;!"(";")";
10;13 permet de récupérer les 2 premières colonnes, celles-ci ayant respectivement 10 et 13 caractères. On aurait pu mettre " "*;" "* mais la deuxième colonne n'existe pas forcément.
" ";" "*;" ";" " permet de récupérer respectivement les champs jour (Fri), mois (Apr), jour du mois (12) et heure de connection (14:14).
!"- " permet de sauter le tiret qui sépare l'heure de connexion de l'heure de déconnexion.
" "* permet de récupérer l'heure de déconnexion et de sauter les espaces suivants.
!"(" permet de sauter la parenthèse ouvrante.
")"; permet de récupérer le delta entre l'heure de connexion et l'heure de déconnexion.