Script perl ou cmd linux pour transformation de format de texte

Script perl ou cmd linux pour transformation de format de texte - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 15-11-2013 à 20:22:48    

Bonjour,
je veux savoir s'il y a des commande linux pour transformer un texte d'un format à un autre format précisé comme par exemple le fichier contient le texte:
[P1 m1/NNP m2/NNP m3/NNP] [P2 m4/NN m5/JJ m6/JJ] [P3 m7/VBN_MS3] [P4 m8/NN] [P5 m9/NNCD] [P6 m10/NN] [P7 m11/IN m12/NN_FS m13/NNP] ./PUNC .......
transformer au fichier de format suivant:
m1 NNP B-P1
m2 NNP I-P1
m3 NNP I-P1
m4 NN B-P2
m5 JJ I-P2
m6 JJ I-P2
m7 VBN_MS3 B-P3
m8 NN B-P4
m9 NNCD B-P5
m10 NN B-P6
m11 IN B-P7
m12 NN_FS I-P7
m13 NNP I-P7
. PUNC O
. . .
. . .
. . .
SVP qlq me aide
 


---------------
plus savoir...
Reply

Marsh Posté le 15-11-2013 à 20:22:48   

Reply

Marsh Posté le 15-11-2013 à 20:40:49    

Bonjour,
Il ne faut pas seulement donner les deux formats en exemple, il faut donner les règles.
J'ai du mal à voir la logique de ta conversion. Autant pour m1/NNP => m1 NNP ça va, autant pour la deuxième partie...

 

edit: ah si, pour le premier m entre [] on colle B-"Le P" et pour les autres des I-"le P" ?

 

Bref, si tu pouvais confirmer/définir les règles... Là à première vue il faudrait plutôt un parser simple qu'une commande magique.


Message édité par o'gure le 15-11-2013 à 20:43:18

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 18-11-2013 à 18:08:31    

Meme demande de précision que O'gure,  
stp ;)
 
sinon sur le principe pour une seule modifications (N occurence mais 1 seule modification voire même 4/5 modifications) si c'est bien réfléchi, une seule commande par exemple sed/awk/perl sans script suffira...pour 99% des cas....
 
 
exemple :


$ cat > toto            
[a b/c]
[d e/f]
$ sed 's/\[\(.\).*\(.\)\/\(.\)\]/\2\/\3-\1/g' toto
b/c-a
e/f-d
$ rm toto


 
 


---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed