J'ai un fichier txt (ANSYS 1ST principe nodal stress list) et il y a presque 16k lignes à l'intérieur. Je veux supprimer des lignes spécifiques par exemple 1ère, 2ème, 3ème, 4ème, 5ème, 39ème, 40ème, 41ème, 42ème, 43ème, etc. Je n'ai pas besoin de rechercher quoi que ce soit, je sais quelles lignes doivent être supprimées. y a-t-il quelqu'un qui vous aide?
3 Réponses :
Si vous utilisez Linux, vous pouvez utiliser cette commande:
sed -i '2d' data.txt
Ceci est étiqueté comme Matlab, mais faire cela dans Matlab va être pénible car cela n'offre généralement pas un moyen pratique de supprimer les octets au milieu d'un fichier, donc vous Vous devez écrire du code pour écrire le texte dans un nouveau fichier, en sautant des lignes si nécessaire.
Si vous êtes sur un système UNIX, ce sera beaucoup plus facile d'utiliser sed. Il y a une excellente réponse ici expliquant comment fais ça. Le raccourci clavier est:
# To delete line 10 and 12: sed -i -e '10d;12d' your-file.txt
Peut-être pas le moyen le plus efficace, mais cela fonctionne:
data_file = 'data.txt'; lines_to_skip = [1:5, 39:43]; fid = fopen(data_file); ii = 0; while ~feof(fid) ii = ii + 1; file_content{ii} = fgetl(fid); end lines = true(1,ii); lines(lines_to_skip) = false; fid = fopen(data_file,'w'); fprintf(fid,'%s\r\n',file_content{lines}); fclose(fid);
Veuillez partager votre code
As-tu vu ça ? mathworks.com/ matlabcentral / answers /…
@MohammadrezaKhatami, ce code ne fonctionne pas à mon problème