1
votes

Comment supprimer toutes les nièmes lignes d'un fichier txt?

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 commentaires

Veuillez partager votre code


As-tu vu ça ? mathworks.com/ matlabcentral / answers /…


@MohammadrezaKhatami, ce code ne fonctionne pas à mon problème


3 Réponses :


1
votes

Si vous utilisez Linux, vous pouvez utiliser cette commande:

sed -i '2d' data.txt


0 commentaires

0
votes

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


0 commentaires

1
votes

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); 


0 commentaires