Remplacer /supprimer une chaine de caractéres
emilie
-
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21644 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
A voir également:
- Remplacer /supprimer une chaine de caractéres
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Caractères spéciaux - Guide
- Remplacant de coco - Accueil - Réseaux sociaux
- Remplacer disque dur par ssd - Guide
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 ;-)
Teste le pour voir si ça te conviens.
Ensuite on verra comment on traites ta centaine de fichiers ;-)
Salut,
alors essaie comme ça
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__
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...)
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.
;-))