Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Novembre 2010 -
Dans le cadre du débuggage d’un programme C, j’ai été amené à écrire dans un fichier plus de 5 millions de valeurs numériques dans le but de les trier ensuite et de supprimer les doublons (« Ah le mec qui debug avec des printf()! » – Ouai ben des fois y’a que ça d’efficace!) . Une fois ce fichier généré, soit environ 40Mo, je me suis posé la question de l’outil à utiliser pour effectuer les opérations dont j’avais besoin. J’ai pensé à plusieurs choses :
- Ouvrir le fichier avec LibreOffice Calc mais il se trouve que celui-ci est limité à un peu plus de 100 000 lignes et ne permet donc pas d’exploiter mon fichier.
- Insérer en base de données les valeurs et effectuer les opérations en SQL. Problème : Il faut une base de données à disposition d’une part et si c’est le cas, MySQL via PhpMyAdmin refuse d’importer le fichier car il est, semble-t-il, trop volumineux.
- Écrire un programme qui lit le fichier, stocke toutes la valeurs dans un tableau et effectue les opérations nécessaires. Seulement voilà, on n’a pas forcément l’envie ni le temps d’écrire un programme pour un traitement aussi commun.
Bref, c’est là qu’intervient Linux et la puissance des outils qui lui sont associés. Dans un terminal :
$ sort -g mon_fichier | uniq > mon_nouveau_fichier
C’est aussi simple que ça! Et le temps d’exécution est très raisonnable :
$ time sort -g ntest | uniq > uniq_sorted_test
real 0m8.013s
user 1m0.326s
sys 0m0.403s
Quelques brèves explications :
- sort -g permet le tri en prenant l’ordre des valeurs numériques et pas l’ordre alphanumérique classique. Sans cette option, on aurait un résultat de ce type : 1, 10, 100, 1000, 11, 110, 1110, …
- uniq permet de supprimer les doublons et de renvoyer les valeurs uniques.
Certes ce n’est pas quelque chose dont on a besoin tous les jours mais ça permet de montrer encore une fois la diversité et la puissance des outils fournis sous Linux. Et ça encourage à chercher du côté de ces petits utilitaires avant de tenter des choses improbables ou de réinventer la roue…
Manuel de sort
Manuel de uniq

Original post of One More Blog.
Votez pour ce billet sur Planet Libre.