Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
stephane.gargoly
Bonjour =C3=A0 tous les utilisateurs et d=C3=A9veloppeurs de Debian :

Je suis un utilisateur de Debian depuis d=C3=A9j=C3=A0 plus d'un an (peu de=
temps apr=C3=A8s la sortie de Squeeze en fait) et c'est la premi=C3=A8re f=
ois que j'envoie un message sur la liste de diffusion debian-user-french. :=
-)

Il y a quelque jours, j'ai r=C3=A9cup=C3=A9r=C3=A9 un fichier Packages.gz s=
ur 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=C3=A9compact=C3=A9, "p=C3=A8se" 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 "Ta=
g"

Cette information de type "Tag", pr=C3=A9sente pour environ 30'000 paquets,=
s'=C3=A9tale sur 1,2 ou 3 (=C3=A9ventuellement plus) lignes selon le paque=
t.

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

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

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

Malheureusement, cela donne des r=C3=A9sultats 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=C3=A9 est que le nombre de saut de li=
gne concernant "Tag" est variable (de 0 =C3=A0 plusieurs) selon le paquet d=
ans le fichier Packages. :-(

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

Informations (plut=C3=B4t concises) sur la configuration mat=C3=A9rielle, l=
ogicielle et r=C3=A9seau de mon ordinateur fixe :
- (Mat=C3=A9riel) processeur AMD Athlon 64 x2 3 GHz, m=C3=A9moire vive 8 Go=
DDR2 800 MHz, deux disques durs SATA II de 1000 Go =C3=A0 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 inst=
all=C3=A9e (=C3=A0 partir du 1er DVD et du r=C3=A9seau) avec les t=C3=A2che=
s, entre autres, "Standard System" et "Desktop" (avec KDE uniquement) et "l=
ocalis=C3=A9e" en fran=C3=A7ais et en anglais (pas de "Dual Boot" donc un s=
eul syst=C3=A8me d'exploitation).
- (R=C3=A9seau) reli=C3=A9 =C3=A0 l'Internet par ADSL2+ =C3=A0 l'aide d'un =
adaptateur-routeur DartyBox.

Si vous souhaitez d'autres informations en lien avec mon probl=C3=A8me, n'h=
=C3=A9sitez pas en me demander. :-)

Je vous remercie d'avance pour vos r=C3=A9ponse.

Cordialement et =C3=A0 bient=C3=B4t,
St=C3=A9phane.


Une messagerie gratuite, garantie =C3=A0 vie et des services en plus, =C3=
=A7a vous tente ?
Je cr=C3=A9e ma bo=C3=AEte mail www.laposte.net

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/1051037693.992192.1345794771727.JavaMail.www@wwinf8223

5 réponses

Avatar
David Prévot
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig1252908363CDC210B3A28011
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Salut,

Le 24/08/2012 03:52, stephane.gargoly a écrit :

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



Pas la moindre idée de ce que tu veux en faire, mais as-tu jeté un œil
du côté de dctrl-tools qui permet d'extraire ce genre de donnà ©es de ce
genre de fichier, et comme le dit la Charte [0], ses listes sont
conformes à la RFC 5322, donc plutôt que de réinventer la roue,
peut-être que ça vaut le coup d'utiliser des outils existants p our
analyser ces champs normalisés.

0: http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-cont rolsyntax



Amicalement

David



--------------enig1252908363CDC210B3A28011
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJQN7INAAoJELgqIXr9/gnyvSkP/3jNQatsOEjVW+Uriz+e1J3N
vFrQ733h39ozMAhPg4ESeIUs8iB1BupG5nrW00StGfUBQCE6j9tE3C50Le5i+81M
UUYYSe9hx8IoKDNgnXJWWQkauzXdWl1RG6KinC+h9DTUWt9YLbPgFCRdYJ/SW2Fp
/FNOVigO50nzDAcM6IDFHAy0Ejy4HyquhzAUBFhNrGrPjI+bfk2kWWHQv2OCu7yk
2t4mBLYfJ2RGnwdbftFYCQGO+YM2DsVzyEeyZMdP4/tJUzxF9cAADkWxH+DZiMb7
TJYGkRIKLpeqDSkMRCI0Yld5Vv8t9epyGpWDHkDcB+ORB7gNdHAThz8nwScrJj+H
SozPxE9FlZ5VI7cwkY9dLB5g6Wd1FgXpTIDGjLlCVbdkyeC6616FlUrfPEWOqn4l
BDAPvmFQ9hVBXxClmrHovdwbRSZQB8DECoPIqy4eSCaKsQaR5AryMIkUgmQ6SdvB
KWUuWPcw3XCbsvsMWhUD0zRLwLkYeHgK+Nd/G8ICX37lEtHVjXaZxtnFaTYYFE1D
Mv5xkbIv1mtGBwPmj3MP/baBPrlFtAXsqkfV/jVMNJPefAs8N+j0fPj6sJ5SMtcH
5v9wbszhrk382HXi6bVY6CTtkz/L4h+tyWWRufG47tvOQMqltkN9aOeNGVyO9j67
RHK/EnBywG9f9Oj8QNk5
=jevQ
-----END PGP SIGNATURE-----

--------------enig1252908363CDC210B3A28011--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/k18bme$jnp$
Avatar
Charles Plessy
Le 24/08/2012 03:52, stephane.gargoly a écrit :

> 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"



Le Fri, Aug 24, 2012 at 12:55:38PM -0400, David Prévot a écrit :
Pas la moindre idée de ce que tu veux en faire, mais as-tu jeté un œil
du côté de dctrl-tools qui permet d'extraire ce genre de données de ce
genre de fichier, et comme le dit la Charte [0], ses listes sont
conformes à la RFC 5322, donc plutôt que de réinventer la roue,
peut-être que ça vaut le coup d'utiliser des outils existants pour
analyser ces champs normalisés.



Bonjour à tous,

petite remarque en passant. En fait, le format des fichiers de données de
contrôle est inspiré de la RFC 822 et des suivantes (5322 étant la plus
récente), mais si on s'en tient strictement aux RFCs, les deux syntaxes ne sont
pas compatibles, par exemple parce que la RFC 5322 stipule que les fins de
lignes sont signalés par un retour chariot suivi d'un passage à la ligne, alors
que les fichiers de contrôle utilisent the format texte Unix qui n'a pas de
retours chariot.

Ceci dit, beaucoup d'outils ignorent cette différence, et les outils comme
dctrl-tools sont écrits directement pour les données de contrôle.

Amicalement,

--
Charles Plessy
Tsurumi, Kanagawa, Japan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
stephane.gargoly
Bonjour à tous les utilisateurs et développeurs de Debian (et à   David Prévot en particulier) :

Tout d'abord, merci à David de m'avoir répondu à mon message (envoyé le 24/08/12 à 9:52). :-)


Le 24/08/12 18:56, David Prévot a écrit :

Pas la moindre idée de ce que tu veux en faire, mais as-tu jeté un œil
du côté de dctrl-tools qui permet d'extraire ce genre de donn ées de ce
genre de fichier, et comme le dit la Charte [0], ses listes sont
conformes à la RFC 5322, donc plutôt que de réinventer la roue,
peut-être que ça vaut le coup d'utiliser des outils existants p our
analyser ces champs normalisés.





Hier matin, j'ai installé le paquet dctrl-tools (ainsi que ses év entuelles dépendances, recommandations et suggestions) à l'aide d u logiciel Aptitude et j'ai consulté les pages de manuel des commandes grep-dctrl, join-dctrl, sort-dctrl et tbl-dctrl.

D'après à ce que j'ai pu comprendre (car c'est en anglais et cett e langue n'est pas vraiment mon fort), tbl-dctrl semble plutôt intà ©ressante par rapport à ce que je compte faire avec le fichier Packa ge.

En effet, avec la commande suivante (par exemple) :
tbl-dctrl -c 'Package=Package' -c 'Version=Version' -c 'Description=D escription' -c 'Source=Source' -d ";" Packages > Packages2

On aura (en consultant le fichier Packages2) :
Package;Version;Description;Source
Nom du 1er paquet;sa version;sa description;son paquet source
Nom du 2ème paquet;sa version;sa description;son paquet source
Nom du 3ème paquet;sa version;sa description;son paquet source
etc

Par contre, si on fait :
tbl-dctrl -c 'Package=Package' -c 'Tag=Tag' -d ";" Packages > Packages3

Le contenu du fichier Packages3 est très différent de ce qu'on de vrait avoir. :-(

Comme je l'ai déjà expliqué dans mon précédent mes sage, pour certains paquets, les données du champ Tag s'étalent s ur 2 ou 3 (voire plus) lignes et tbl-dctrl semble avoir du mal à bien interpréter les sauts de ligne.

Bien sûr, une solution est de renoncer aux données "Tag" mais cel a serait vraiment dommage car ce champ apporte, à priori, des informat ions intéressantes.

Selon vous, qu'est-ce que je dois faire (avec tbl-dctrl ou autre commande) à partir du fichier initial Packages pour que dans un nouveau fichier Packages2, j'ai les données "Tag" correctement formatées ?

Mon but final est de transformer Packages en un fichier de type CSV (avec l es données des champs que j'aurai sélectionnés) afin que je puisse exporter dans le tableur OpenOffice Calc. Ainsi, je pourrai, entre a utres, faire des filtres ou des tris parmi les données. ;-)

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éponses.

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

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
David Prévot
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig81847C459CEFBB21F0DF8B1B
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2012 16:02, stephane.gargoly a écrit :

Hier matin, j'ai installé le paquet dctrl-tools […]

D'après à ce que j'ai pu comprendre (car c'est en anglais et cette langue n'est pas vraiment mon fort)



La documentation est traduite en français depuis la version 2.19.

Amicalement

David

P.-S.: Pas la peine de me mettre en copie, je lis la liste.



--------------enig81847C459CEFBB21F0DF8B1B
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJQPSgmAAoJELgqIXr9/gnyfD4P/jX56OhpW+PEWHNhlyJpdO/u
RQSjF/zJpZYlRuOcJomyKoCNamedTfubCWXKQBbTpLKxYXSimy06OvzVasrmyW+c
SJXmbOjwIgF72O9kSfEHsywCJ5ALKZHNFxI1gljpwEi82Qt24y/bseRZd85KWg7B
vov8S0ZvTk2fy5ve11y4rLzVaD0n6sfRUaunYYwEGZCGXz0H6etRiMDHzRaR5Y+a
V9Dz77qh77kH9kwNhQKRGhJN50yQaL6I1zjdk0wq3N72cC0RT7oZBaEIzCQhp9Zp
lzUeLQ0coMD90TgZ0idIQzRtdNK069sps+uZHmurtW+k5DJT/V8kBXVj05QurwRK
Mjucqj/EowMCrdy/XIyC2FJyPH+Sm+Yg2nGd9mHTKNpbsIZiOTGNcxrKo8EafaNR
L3Vvi1rtzUcisAuhSpVXUlhfa7w7j4ifzsDJU2dbn54Y6+/McvdM9NaOH/4iR5Be
ScrV2W8Hx6uhR3i65Su4i323bSLnhnAuMbckqLwLn5xnWsDFWZpJY57SkmEjxDMx
eMqCUxoKMl65wl2XddL0QXlEQM2Bt04n0CSUVVjHuTatsBgWLeVDuHIJSah54BKF
P4oyVMvusMU5oHXdsc6R5Veq/tsq5jZDten/YlOhuqXygNQ/1COkNY+eiwVjnevQ
Tsn/fZnkywWn53CymJPM
=cvt4
-----END PGP SIGNATURE-----

--------------enig81847C459CEFBB21F0DF8B1B--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/k1j977$oce$
Avatar
stephane.gargoly
Bonjour à tous les utilisateurs et développeurs de Debian (et à   David Prévot en particulier) :

Tout d'abord, merci à David de m'avoir répondu à mon message (envoyé le 28/08/12 à 22:02). :-)

Le 28/08/12 22:21, David Prévot a écrit :

La documentation est traduite en français depuis la version 2.19.




Étant donné que je suis sous Squeeze, la version de dctrl-tools e st 2.14.5. Par contre, sous Wheezy, sa version passe à 2.22.2 et, d'ap rès la page http://packages.debian.org/wheezy/amd64/dctrl-tools/fileli st, elle inclue effectivement des pages de manuel en français.

Seulement, je passerai à Wheezy quand elle deviendra la nouvelle distr ibution stable (peut-être au 1er trimestre 2013)...

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

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/