#!/usr/bin/perl use strict; use warnings; use utf8; use open qw/:std :utf8/; use Getopt::Long; my ($programme) = $0 =~ m|^(?:.*/)?(.+)|; #ouverture du fichier des métadonnées version 1 open(METADATA_V1, "<:encoding(UTF-8)", "Arthropodes_metadata_v1.txt") or die "Couldn't open file Arthropodes_metadata_v1.txt, $!"; #ouverture du fichier des métadonnées version 2 open(METADATA_V2, ">:encoding(UTF-8)", "Arthropodes_metadata_v2.txt") or die "Couldn't open file Arthropodes_metadata_v2.txt, $!"; #définition des catégories des métadonnéés version 2 print METADATA_V2 "\"id\",\"corpus\",\"journal\",\"annee\"\n"; #parcours des métadonnées version 1, sélectionner les informations utiles à entrer dans version2 my $id; while(my $ligne = <METADATA_V1>){ chomp($ligne); #si la ligne commence par "NO :", on extrait les informations le suivantes. if ($ligne =~ /^NO : .*\(corpus ([A-Z].*?)\)/){ $id++; print METADATA_V2 sprintf("\"Arthropodes_%04d\",",$id);#numéroter les ids par 0001,0002... print METADATA_V2 "\"$1\","; } elsif ($ligne =~ /^SO : (.*?) ; .*? ; ([0-9]{4})/){ print METADATA_V2 "\"$1\","; print METADATA_V2 "\"$2\"\n"; } } close (METADATA_V1); close (METADATA_V2); exit 0; sub usage { my $code = shift; print "Usage : $programme -i input [ -o output ]\n"; exit $code; }