我有一个txt文件(ANSYS 1ST原理节点应力列表),其中几乎有16k行。我想删除特定的行,例如1st,2nd,3rd,4th,5th,39th,40th,41th,42th,43th等。我不需要搜索任何内容,我知道要删除的行。有人帮忙吗?
答案 0 :(得分:1)
也许不是最有效的方法,但这可行:
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);
答案 1 :(得分:0)
如果您使用的是Linux,则可以使用该命令:
sed -i '2d' data.txt
答案 2 :(得分:0)
这被标记为Matlab,但是在Matlab中执行此操作将很痛苦,因为它通常不提供一种方便的方法来删除文件中间的字节,因此您会必须编写一些代码以将文本写入新文件,并适当跳过行。
如果您在UNIX系统上,则使用sed会容易得多。 a great answer here解释了如何执行此操作。关键命令是:
# To delete line 10 and 12:
sed -i -e '10d;12d' your-file.txt