j'espère être dans la bonne sous-catégorie pour poser ma question. désolée par avance si ce n'est pas le cas.
je travaille sous cygwin, je suis sur une bibliographie que j'aimerais classer chronologiquement par ordre de parution.
Pour se faire il me suffira d'utiliser la fonction sort, mais avant ça il faut que toutes mes lignes commencent par les dates.
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
j'ai donc essayé de supprimer le début de la ligne sauf les dates en faisant :
$ sed '/[a-z][^[12][0-9][0-9][0-9]]/!d' fichier.txt
malheureusement cette expression me supprime toutes mes lignes ainsi que mes dates :-(
Pouvez-vous m'éclairer, m'aiguiller ?
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître le format précis de tes lignes, c'est difficile d'en savoir plus...
Benoit Izac
Bonjour,
le 17/04/2009 à 20:40, nanou a écrit dans le message :
j'espère être dans la bonne sous-catégorie pour poser ma question. désolée par avance si ce n'est pas le cas.
Plutôt fr.comp.os.unix.
je travaille sous cygwin, je suis sur une bibliographie que j'aimerais classer chronologiquement par ordre de parution. Pour se faire il me suffira d'utiliser la fonction sort, mais avant ça il faut que toutes mes lignes commencent par les dates. Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
man sort, regarde les options « -t » et « -k » (peut-être aussi « -n »). Sans connaître le format de tes lignes, difficile de t'en dire plus.
j'ai donc essayé de supprimer le début de la ligne sauf les dates en faisant : $ sed '/[a-z][^[12][0-9][0-9][0-9]]/!d' fichier.txt
Je ne suis pas sûr que ça fasse ce que tu penses ; cette commande fait afficher (ne pas supprimer en fait mais c'est équivalent ici) toutes les lignes de « fichier.txt » qui comportent : - une lettre minuscule (ASCII) - suivie d'un caractère qui n'est pas « [ », « 1 » ou « 2 » - suivi d'un chiffre décimal - suivi d'un chiffre décimal - suivi d'un chiffre décimal - suivi d'un « ] »
Ce qui n'a pas vraiment de sens.
-- Benoit Izac
Bonjour,
le 17/04/2009 à 20:40, nanou a écrit dans le message
<KtqdnT5fedi9UHXU4p2dnAA@giganews.com> :
j'espère être dans la bonne sous-catégorie pour poser ma question.
désolée par avance si ce n'est pas le cas.
Plutôt fr.comp.os.unix.
je travaille sous cygwin, je suis sur une bibliographie que j'aimerais
classer chronologiquement par ordre de parution. Pour se faire il me
suffira d'utiliser la fonction sort, mais avant ça il faut que toutes
mes lignes commencent par les dates. Or ce n'est pas le cas, pour
l'instant elles commencent par les noms d'auteur.
man sort, regarde les options « -t » et « -k » (peut-être aussi « -n »).
Sans connaître le format de tes lignes, difficile de t'en dire plus.
j'ai donc essayé de supprimer le début de la ligne sauf les dates en
faisant :
$ sed '/[a-z][^[12][0-9][0-9][0-9]]/!d' fichier.txt
Je ne suis pas sûr que ça fasse ce que tu penses ; cette commande fait
afficher (ne pas supprimer en fait mais c'est équivalent ici) toutes les
lignes de « fichier.txt » qui comportent :
- une lettre minuscule (ASCII)
- suivie d'un caractère qui n'est pas « [ », « 1 » ou « 2 »
- suivi d'un chiffre décimal
- suivi d'un chiffre décimal
- suivi d'un chiffre décimal
- suivi d'un « ] »
le 17/04/2009 à 20:40, nanou a écrit dans le message :
j'espère être dans la bonne sous-catégorie pour poser ma question. désolée par avance si ce n'est pas le cas.
Plutôt fr.comp.os.unix.
je travaille sous cygwin, je suis sur une bibliographie que j'aimerais classer chronologiquement par ordre de parution. Pour se faire il me suffira d'utiliser la fonction sort, mais avant ça il faut que toutes mes lignes commencent par les dates. Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
man sort, regarde les options « -t » et « -k » (peut-être aussi « -n »). Sans connaître le format de tes lignes, difficile de t'en dire plus.
j'ai donc essayé de supprimer le début de la ligne sauf les dates en faisant : $ sed '/[a-z][^[12][0-9][0-9][0-9]]/!d' fichier.txt
Je ne suis pas sûr que ça fasse ce que tu penses ; cette commande fait afficher (ne pas supprimer en fait mais c'est équivalent ici) toutes les lignes de « fichier.txt » qui comportent : - une lettre minuscule (ASCII) - suivie d'un caractère qui n'est pas « [ », « 1 » ou « 2 » - suivi d'un chiffre décimal - suivi d'un chiffre décimal - suivi d'un chiffre décimal - suivi d'un « ] »
Ce qui n'a pas vraiment de sens.
-- Benoit Izac
nanou45
Fabien LE LEZ a écrit le 17/04/2009 à 21h02 :
On Fri, 17 Apr 2009 13:40:32 -0500, nanou45 :
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître le format précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports. Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes dates pour une meilleure visibilité. ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment on peut supprimer qu'une partie de ligne.
Fabien LE LEZ a écrit le 17/04/2009 à 21h02 :
On Fri, 17 Apr 2009 13:40:32 -0500, nanou45 :
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître
le format
précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports.
Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes dates pour une meilleure visibilité.
ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment on peut supprimer qu'une partie de ligne.
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître le format précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports. Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes dates pour une meilleure visibilité. ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment on peut supprimer qu'une partie de ligne.
Alain Montfranc
nanou45 a écrit
Fabien LE LEZ a écrit le 17/04/2009 à 21h02 :
On Fri, 17 Apr 2009 13:40:32 -0500, nanou45 :
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître le format précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports. Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes dates pour une meilleure visibilité. ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment on peut supprimer qu'une partie de ligne.
sed 's?(.*)(<date>[0-9]*</date>)(.*)?2 1 3?' < biblio > biblio.new
nanou45 a écrit
Fabien LE LEZ a écrit le 17/04/2009 à 21h02 :
On Fri, 17 Apr 2009 13:40:32 -0500, nanou45 :
Or ce n'est pas le cas, pour l'instant elles commencent par les noms
d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître
le format
précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur
les termes supports.
Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes
français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes
dates pour une meilleure visibilité.
ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme
ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment
on peut supprimer qu'une partie de ligne.
sed 's?(.*)(<date>[0-9]*</date>)(.*)?2 1 3?' < biblio >
biblio.new
Or ce n'est pas le cas, pour l'instant elles commencent par les noms d'auteur.
À vue de nez, l'outil adapté est awk. Mais sans connaître le format précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports. Leclère, C. <date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Voici deux lignes de ma bibliographie. comme tu vois j'ai déjà balisé mes dates pour une meilleure visibilité. ce que j'aimerais c'est pouvoir supprimer le nom qui précède la date, comme ça la date se retrouve en début de ligne. Mais du coup je ne sais pas comment on peut supprimer qu'une partie de ligne.
sed 's?(.*)(<date>[0-9]*</date>)(.*)?2 1 3?' < biblio > biblio.new
Benoit Izac
Bonjour,
le 17/04/2009 à 22:18, nanou a écrit dans le message :
précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage axée sur les termes supports. Leclère, C.
<date>1990</date>Organisation du lexique-grammaire des verbes français. Langue Française,
Si les dates comportent toujours quatre chiffres et que tu n'as pas d'autres « > » avant celui de « <date> » :
sort -t > -k 2 fichier.txt
-- Benoit Izac
Bonjour,
le 17/04/2009 à 22:18, nanou a écrit dans le message
<R-qdnSsteNCKeXXU4p2dnAA@giganews.com> :
précis de tes lignes, c'est difficile d'en savoir plus...
Ibrahim, Amr H. <date>1996</date>La forme d'une théorie du langage
axée sur les termes supports. Leclère, C.
<date>1990</date>Organisation du lexique-grammaire des verbes
français. Langue Française,
Si les dates comportent toujours quatre chiffres et que tu n'as pas
d'autres « > » avant celui de « <date> » :