Bonjour.
J'ai écris un script très simple (mon deuxième en Perl) qui convertit les mots-clés séparés par des virgules dans un fichier BibTeX en tags, c'est à dire en une suite de mots-clés sans espaces et séparés par des espaces (pour upload sur citeulike.org, bibsonomy.org et autres sites de gestion et de partage de bibliographies en ligne).
Il marche très bien ; le voici :
Mais je ne sais pas comment m'y prendre pour lire et écrie les données sur l'entrée et la sortie standards plutôt que depuis et vers un fichier. Quelqu'un pourrait-il m'aider ? Merci par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #!/usr/bin/perl use encoding "utf8"; use warnings; use strict; use Text::BibTeX; my $oldfile = shift; open BIBFILE1, '<:utf8', $oldfile or die "Problem opening $oldfile\n"; my $newfile = shift; open BIBFILE2, '>:utf8', $newfile or die "Problem opening $newfile\n"; while (my $entry = new Text::BibTeX::Entry $oldfile, \*BIBFILE1) { next if !$entry->parse_ok; my $keywords = $entry->get ('keywords'); next if !defined($keywords); my @list = split (",", $keywords); foreach (@list) {s/^ //g; s/ $//g; s/ /_/g}; my $tags = join(' ', @list); $entry->set ('keywords', $tags); $entry->print (\*BIBFILE2); }
Note : la méthode new de BibTeX (il y a aussi une method open, mais je ne l'ai pas utilisé pour pouvoir spécifier l'ouverture en utf-8) est une interface vers le open de IO::File et donc vers le open intégré à Perl.
------
Tête de fou ne blanchit jamais (proverbe bourguignon)
Partager