Suppression de sauts de ligne dans un fichier texte (sous conditions)
5 réponses
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
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig1252908363CDC210B3A28011 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
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"
-- 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$
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig1252908363CDC210B3A28011
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
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"
--
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/k18bme$jnp$1@ger.gmane.org
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig1252908363CDC210B3A28011 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
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"
-- 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$
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/
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 debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20120825023934.GB2450@falafel.plessy.net
> 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/
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
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
--
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/1100944143.815790.1346184160701.JavaMail.www@wwinf8228
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
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig81847C459CEFBB21F0DF8B1B Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
-- 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$
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig81847C459CEFBB21F0DF8B1B
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
--
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/k1j977$oce$1@ger.gmane.org
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig81847C459CEFBB21F0DF8B1B Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
-- 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$
--
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/1738390322.1237588.1346233311219.JavaMail.www@wwinf8311