cygwin suppression partielle de ligne

Le
nanou45
Bonjour,

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 ?

Merci par avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien LE LEZ
Le #19136191
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...
Benoit Izac
Le #19137121
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
nanou45
Le #19136331
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.
Alain Montfranc
Le #19137101
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?(.*)( biblio.new
Benoit Izac
Le #19137091
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
Publicité
Poster une réponse
Anonyme