Remplacer /supprimer une chaine de caractéres
emilie
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
J'ai des fichiers qui ont cette forme :
{123,{1.5,0.2;0.8},
{0.5,0.6,1.4},
...
{0.9,2.1,1.3}}
Je voudrais l'avoir sous cette forme pour pouvoir l'utiliser avec matlab :
1.5,0.2,0.8,
0.5,0.6,1.4,
...
0.9,2.1,1.3
Je veux donc supprimer le premier nombre (qui indique le nombre de lignes) et supprimer les accolades ou les transformer en espace.
Je voudrais utiliser un script shell ou perl qui me fasse ca automatiquement (j'ai une centaine de fichiers dans ce genre), mais je ne sais pas trop comment m'y prendre.
Toute aide serait la bienvenue :)
Merci d'avance
J'ai des fichiers qui ont cette forme :
{123,{1.5,0.2;0.8},
{0.5,0.6,1.4},
...
{0.9,2.1,1.3}}
Je voudrais l'avoir sous cette forme pour pouvoir l'utiliser avec matlab :
1.5,0.2,0.8,
0.5,0.6,1.4,
...
0.9,2.1,1.3
Je veux donc supprimer le premier nombre (qui indique le nombre de lignes) et supprimer les accolades ou les transformer en espace.
Je voudrais utiliser un script shell ou perl qui me fasse ca automatiquement (j'ai une centaine de fichiers dans ce genre), mais je ne sais pas trop comment m'y prendre.
Toute aide serait la bienvenue :)
Merci d'avance
Configuration: Linux Fedora Firefox 2.0.0.14
6 réponses
-
Salut,
lami20j@debian:~/trash$ cat emilie.pl #!/usr/bin/perl use strict;use warnings; open LIRE,"fic.txt" or die " E/S : $!\n"; open ECRIRE,">fic_resultat.txt" or die "E/S : $!\n"; while(<LIRE>){ s/[{}]//g; s/;/,/g; s/^\d+,// if $.==1; print ECRIRE; } __END__ lami20j@debian:~/trash$ cat fic.txt {123,{1.5,0.2;0.8}, {0.5,0.6,1.4}, ... {0.9,2.1,1.3}} lami20j@debian:~/trash$ perl emilie.pl lami20j@debian:~/trash$ cat fic.txt {123,{1.5,0.2;0.8}, {0.5,0.6,1.4}, ... {0.9,2.1,1.3}} lami20j@debian:~/trash$ cat fic_resultat.txt 1.5,0.2,0.8, 0.5,0.6,1.4, ... 0.9,2.1,1.3 lami20j@debian:~/trash$ -
C'est juste un exemple.
Teste le pour voir si ça te conviens.
Ensuite on verra comment on traites ta centaine de fichiers ;-) -
Salut,
alors essaie comme ça#!/usr/bin/perl use strict;use warnings; open LIRE,"fic.txt" or die " E/S : $!\n"; open ECRIRE,">fic_resultat.txt" or die "E/S : $!\n"; while(<LIRE>){ s/[{}]//g; s/;/,/g; s/^\s+\d+,// if $.==1; print ECRIRE; } __END__
-
Mets ton fichier sur cjoint.com, pour que je fasse un test chez moi.
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Chez moi, ça marche
lami20j@debian:~/trash$ cat emilie.pl #!/usr/bin/perl use strict;use warnings; open LIRE,"fic.txt" or die " E/S : $!\n"; open ECRIRE,">fic_resultat.txt" or die "E/S : $!\n"; while(<LIRE>){ s/[{}]//g; s/;/,/g; s/^\s+\d+,// if $.==1; print ECRIRE; } __END__Le résultat0.000000, 0.000000, -0.000000, 0.000015, -0.000013, 9.857931, 60.601134, 0.000042, 0.000090, 0.000015, 21.646551, -0.000029, -3.043643, 5.187635, 0.402900, 0.662895, 0.340299, -1.265174, 0.313811, 0.445490, 0.212161, 6.949538, -12.209262, -0.055734, -0.166149, -5.008213, -0.212022, 0.244953, 0.278133, -1.645837, 0.235761, 2.592882, 1.024219, 0.717922, -2.120681, -0.426763, -0.305255, -0.138423, 0.244488, 0.179604, 0.000267, 0.600664, 0.397815, -4.469223, -1.249551, -1.902815, 4.135948, 0.915067, -0.714233, 0.074580, -0.084990, -0.295770, -0.242211, -0.214203, 0.094836, -0.158762, 0.300654, 1.576774, -0.245496, 0.379184, -0.799598, -0.548546, -0.822981, 0.286806, 0.120600, 1.118206, 0.010500, 0.141083, -0.722560, -1.996205, 0.181842, -0.815626, 0.106338, 2.122076, 1.002167, 0.011989, 0.035186, 0.570778, -0.298644, 0.447038, -0.081150, 0.143109, 0.179813, 0.332033, -0.055096, -0.149378, -0.584324, -0.141326, -0.030305, 0.412777, 0.513759, -0.582043, 0.093253, -0.538600, -0.218056, -0.082572, -0.042544, 0.050252, 0.209995, -0.041159, 0.209718, -0.514618, -0.012624, 1.040929, -0.002967, 1.137451, 0.016295, 0.575080, 0.007451, -0.110874, 0.294640, 0.081842, -0.081875, 0.111996, -0.150300, 0.033508, 0.174868, -0.039776, 0.091198, -0.132924, 0.050474, -0.174714, -0.541588, -0.390954, 0.256270, 0.147603, 0.088318, 0.041295, -0.049035, -0.472500, -0.062535, -0.459618, -0.060462, 0.329569, 0.318394, 0.158514, -0.169201, -0.541059, -0.035991, -0.140799, 0.081721, 1.002814, 0.405397, 0.310350, 0.636680, -0.069341, 0.010305, 0.017370, 0.011730, -0.017266, -0.244586, 0.001667, -0.238959, -0.001641, -0.009022, -0.311850, -0.086985, 0.043269, -0.205832, 0.122303, 0.235198, -0.067372, 0.472994, -0.074604, 0.018840, -0.122399, 0.158060, 0.038026, 0.040388, 0.098027, 0.165883, 0.029920, -0.028153, 0.124228, -0.363303, 0.181699, 0.058831, 0.167191, 0.025592, 0.030484, -0.012928, -0.025489, 0.196090, 0.008187, 0.272748, -0.154186, 0.470542, -0.823719, -0.078817, -0.726287, -0.360415, -0.045171, 0.104692, -0.079016, -0.028941, 0.118945, -0.009924, 0.156262, -0.120352, -0.028838, 0.074497, -0.308840, 0.026533, 0.150983, 0.026452, 0.045513, 0.027627, 0.016688, -0.009979, -0.097774, 0.132216, 0.016480, 0.063631, 0.231537, -0.040393, -0.255148, -0.104396, 0.002276, 0.146099, 0.185025, 0.004967, -0.145224, -0.033350, -0.036671, 0.284901, -0.009632, -0.031070, -0.088484, 0.334263, -0.089872, 0.022629, 0.032515, -0.181132, -0.054689, -0.192273, -0.041333, 0.305054, -0.290386, -0.151377, 0.187381, -0.650861, 0.061697, -0.063479, -0.022570, -0.023849, -0.038819, 0.247417, -0.023092, -0.247358, 0.045441, 0.059976, -0.058877, -0.016648, -0.120340, -0.233564, 0.100392, 0.075343, 0.028359, -0.003925, 0.014456, 0.066273, -0.052735, -0.147173, 0.126231, 0.019127, 0.086244, 0.055220, 0.011553, -0.050474, -0.186809, 0.033988, -0.054457, 0.006503, -0.006094, -0.088246, -0.165665, 0.066251, -0.044997, 0.089952, 0.008910, 0.027498, -0.281322, -0.102093, -0.125738, -0.086042, -0.017380, -0.085841, -0.043356, 0.020434, 0.058434, 0.046064, -0.070555, -0.154168, -0.260312, -0.029566, 0.477193, 0.047269, -0.043532, -0.124456, 0.040115, 0.001083, 0.011262, 0.056384, 0.127070, 0.104232, 0.260176, -0.017094, -0.003811, -0.088493, -0.027610, -0.040860, -0.046714, -0.042312, -0.044887, -0.022634, -0.137463, -0.014805, -0.074235, -0.001204, 0.073903, 0.266267, 0.152425, -0.107474, -0.085525, 0.016271, -0.002211, -0.050056, 0.047774, 0.025829, -0.057648, -0.061048, -0.085940, -0.062727, -0.099577, 0.014555, -0.029225, -0.033550, 0.045628, 0.170811, -0.147971, 0.041500, 0.161378, -0.007529, 0.069586, 0.102590, 0.035074, 0.054614, -0.014048, 0.114056, -0.058150, 0.087696, -0.001593, 0.093532, -0.035073, 0.045352, 0.033479, 0.070713, 0.050482, -0.113745, -0.085271, 0.282066, 0.110458, 0.121528, -0.031556, 0.027684, 0.059745, 0.003093, -0.091750, 0.023905, -0.029239, -0.029345, 0.019587, -0.104610, 0.023170, 0.179111, -0.000436, 0.083030, 0.103152, -0.061470, -0.024655, -0.133486, -0.020105, 0.081682, -0.017502, 0.105371, -0.023556, 0.207050, 0.062514, 0.028594, -0.049320, 0.057547, 0.008929, 0.096901, 0.001226, -0.098300, -0.080043, -0.131931, -0.010140, -0.170525, -0.104562, 0.087323, -0.081974, -0.104532, -0.045065, -0.107880, 0.076836, 0.044201, 0.156599, 0.017761, -0.095275, 0.098636, -0.051384, 0.001713, -0.062730, -0.044362, 0.047565, -0.043303, 0.164738, -0.033650, -0.162262, -0.074166, 0.076803, 0.124486, 0.132813, 0.045013, 0.115069, 0.167993, -0.190244, 0.100206, -0.037163, -0.035926, -0.000817, -0.026299, -0.034864, 0.009029, 0.190962, 0.063249, 0.325435, 0.059855, -0.054156, -0.164898, -0.027999, -0.071312, -0.201201, 0.049807, -0.011719, -0.036595, -0.090310, 0.084650, -0.106230, 0.049876, 0.062150, 0.065983, 0.001210, -0.105925, -0.026257, -0.030307, -0.057797, -0.121313, -0.065261, 0.075318, -0.182281, -0.071319, -0.120703, -0.120146, -0.021165, 0.087811, 0.197759, 0.084199, -0.026139, -0.010420, -0.048142, -0.009801, 0.092550, -0.076758, 0.063824, 0.023396, 0.024919, 0.077657, -0.214852, 0.117822, 0.078556, 0.165871, 0.006687, -0.001496, 0.122089, 0.086712, -0.087005, -0.175153, -0.111872, -0.137499, 0.079986, -0.036103, -0.113816, 0.030957, 0.079348, -0.089197, -0.152929, -0.004258, -0.083435, -0.219146, -0.130231, 0.160207, 0.097810, -0.138578, -0.045240, -0.125346, -0.037697, -0.050141, 0.138764, 0.083826, -0.034635, -0.161343, 0.080181, 0.196215, -0.031726, 0.063591, 0.080485, -0.059428, 0.040917, -0.006534, -0.145303, -0.116968, 0.010215, -0.088647, -0.012017, -0.077909, -0.032899, 0.046968, 0.010741, -0.001873, 0.006690, 0.050727, 0.133332, 0.087895, 0.011797, 0.081487, -0.009017, 0.004532, -0.133248, -0.083019, -0.032086, -0.029385, -0.066434, 0.008742, -0.095692, -0.023058, -0.034119, -0.023578, 0.022015, -0.088922, 0.060141, 0.072880, 0.031144, 0.203965, 0.121907, -0.064898, -0.085686, -0.014893, 0.047411, -0.089938, -0.037753, -0.042510, -0.122781, 0.041067, -0.057469, -0.089358, -0.052276, 0.057310, 0.045672, 0.077053, 0.037416, 0.056406, -0.105147, -0.009287, -0.017663, -0.028726, 0.180708, 0.167253, -0.075690, -0.001498, -0.009051, -0.008525, 0.161751, -0.057279, -0.046786, 0.164263, 0.331892, 0.007824, 0.045646, -0.004449, 0.069888, 0.094903, 0.004757, 0.017453, -0.064597, -0.078236, 0.038253, -0.119556, -0.085817, -0.014009, 0.024405, 0.093092, -0.048922, -0.004266, 0.059926, -0.122870, 0.037070, -0.000569, 0.002533, 0.013846, -0.027360, 0.011175, -0.032148, 0.021964, 0.010899, -0.016614, -0.200613, 0.055432, -0.010946, -0.062479, -0.010247, 0.020638, 0.112256, 0.066112, 0.071145, 0.042366, -0.028083, -0.003316, 0.105806, -0.026435, 0.084436, -0.050487, -0.001479, -0.029732, -0.208964, 0.047810, -0.004166, 0.034128, 0.034752, 0.001622, 0.046034, 0.090433, -0.004715, 0.065209, -0.076657, 0.064616, 0.111769, -0.093743, 0.026089, 0.005762, -0.015709, 0.040466, -0.122479, -0.015730, 0.064503, -0.149436, 0.089080, 0.044617, -0.045500, 0.085177, 0.036477, 0.015456, -0.071712, 0.017124, 0.132462, 0.094773, 0.027188, -0.007216, 0.043930, -0.100302, 0.089629, -0.023317, -0.011257, 0.022815, -0.000345, -0.007013, 0.033616, -0.113282, 0.004969, -0.255238, 0.033603, 0.078608, -0.066376, -0.020824, 0.108019, -0.126800, -0.058476, -0.016326, 0.013530, 0.132877, 0.023797, -0.015735, -0.078147, 0.029374, 0.057389, -0.018676, 0.021170, -0.057086, -0.030874, -0.023437, 0.003947, 0.048327, 0.045450, -0.063535, 0.046925, -0.026404, 0.007556, -0.055380, 0.001636, 0.125054, -0.015757, 0.040403, -0.084903, -0.040819, 0.027677, 0.007762, -0.105935, 0.094774, -0.012249, 0.066934, 0.017790, 0.019457, -0.002039, 0.025315, 0.004497, 0.038114, 0.020485, 0.099143, 0.029711, 0.050858, -0.105156, 0.002446, -0.045756, -0.204269, 0.009423, -0.060195, 0.049046, 0.032141, -0.013665, -0.119728, 0.027857, 0.009572, -0.073407, -0.108972, -0.004342, 0.123853, -0.119634, -0.006180, -0.075945, 0.042203, -0.002617, -0.027098, 0.130775, 0.029535, 0.028464, 0.040785, -0.042641, -0.143835, 0.089262, -0.027294, 0.050724, -0.008905, -0.074679, 0.007503, 0.016530, -0.053487, 0.018028
-
Salut ,
Je dois maintenat faire ca pour tout un tas de fichiers(une centaine...)
Comment je pourrais faire pour rentrer le nom du fichier en argument, pour pouvoir appeler le script perl depuuis un script qui parcourt tout mon repertoire de fichiers ?
un truc du genre :
foreach $f in rep
perl emilie.pl $f
(désolée pour la syntaxe pas terrible...) -
-
-
Si la méthode avec "sed" te convient, en supposant que tous les fichiers commencent par "fic" :
sed -si.bak 's/{.*{\|{\|}//g' fic*Le ".bak" est facultatif, cela permet de faire une sauvegarde du fichier original. Le "-s" permet de traiter chaque fichier un par un et non comme un seul et même fichier. Le "-i" permet de modifier le fichier en place.
;-)) -
-
-
Salut,
sed 's/{.*{\|{\|}//g';-))