[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Suppression de sauts de ligne dans un fichier texte (sous conditions)



Bonjour à tous les utilisateurs et développeurs de Debian :

Je suis un utilisateur de Debian depuis déjà plus d'un an (peu de temps après la sortie de Squeeze en fait) et c'est la première fois que j'envoie un message sur la liste de diffusion debian-user-french. :-)

Il y a quelque jours, j'ai récupéré un fichier Packages.gz sur le site FTP ftp://ftp2.fr.debian.org/pub/debian/dists/wheezy/main/binary-amd64/.

Wheezy est le futur successeur de Squeeze en tant que distribution stable.

Ce fichier Packages, une fois décompacté, "pèse" plus de 25 Mo et contient les informations (de type "Packages", "Version", "Maintainer" ou "Description" entre autres) de tous les paquets Debian (autrement dit les fichiers *.deb).

Il y en a pour environ 36'000 paquets...ce qui explique que le fichier soit si "lourd". ;-)

Parmi les types d'information, il y a un auquel je voudrais vous en parler et que je souhaite solliciter votre aide ou vos conseils : il s'agit de "Tag"

Cette information de type "Tag", présente pour environ 30'000 paquets, s'étale sur 1,2 ou 3 (éventuellement plus) lignes selon le paquet.

Mon souhait est que toute l'information "Tag" soit contenue sur une seule ligne par paquet. Vous avez, sans doute, compris : il faudrait que je supprime les sauts de ligne si cela s'étale sur 2 (ou plus) lignes.

Pour cela, j'ai utilisé les 2 commandes suivantes (l'une après l'autre) :
sed '/^ / N;s/\n//g' Packages > Packages2
sed '/^Tag: / N;s/\n//g' Packages2 > Packages3

J'ai utilisé sed en raison, entre autre, de la taille de Packages. ;-)

Malheureusement, cela donne des résultats qui ne me convient pas car :
- soit cela supprime le saut de ligne entre "Tag" et "Section" ce que je ne souhaite pas,
- soit il reste encore, au moins, un saut de ligne au sein de l'information "Tag".

Bien entendu, la principale difficulté est que le nombre de saut de ligne concernant "Tag" est variable (de 0 à plusieurs) selon le paquet dans le fichier Packages. :-(

Selon vous, quel est le bon traitement (avec sed ou autre commande) à appliquer au fichier initial Packages pour que dans un nouveau fichier Packages2, j'ai "Tag" sur une seule ligne par paquet ?

Informations (plutôt concises) sur la configuration matérielle, logicielle et réseau de mon ordinateur fixe :
- (Matériel) processeur AMD Athlon 64 x2 3 GHz, mémoire vive 8 Go DDR2 800 MHz, deux disques durs SATA II de 1000 Go à 7200 tr/mn avec cache de 32 Mo, carte graphique PCI-Express 16x avec ATI HD3650 et 512 Mo.
- (Logiciel) distribution Debian GNU/Linux 6.0 "Squeeze" version amd64 installée (à partir du 1er DVD et du réseau) avec les tâches, entre autres, "Standard System" et "Desktop" (avec KDE uniquement) et "localisée" en français et en anglais (pas de "Dual Boot" donc un seul système d'exploitation).
- (Réseau) relié à l'Internet par ADSL2+ à l'aide d'un adaptateur-routeur DartyBox.

Si vous souhaitez d'autres informations en lien avec mon problème, n'hésitez pas en me demander. :-)

Je vous remercie d'avance pour vos réponse.

Cordialement et à bientôt,
Stéphane.


Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net


Reply to: