如何从顶部以外的不同行中删除标题 - MATLAB

问题描述:

我有一个包含多个标题的文本文件。 它看起来像这样:如何从顶部以外的不同行中删除标题 - MATLAB

 
Date,time,*10ms,%%,%%,%%,%%,%%,%%,%%,%%,%%,%%,DETAILS.txt;D;%%;10 
11/08/19,13:19:28,03,446,0,545.75,0,6,0,0,0,14,0 
11/08/19,13:19:29,05,446,0,549.25,1.9,6,102,1,0,0,0 
11/08/19,13:19:30,07,446,0,549.5,1.9,6,102,1,0,0,0 
11/08/19,13:19:31,09,446,0,548.75,1.9,6,102,1,0,0,0 
. 
. 
. 
. 
Date,time,*10ms,%%,%%,%%,%%,%%,%%,%%,%%,%%,%%,DETAILS.txt;D;%%;10 
11/08/19,13:19:28,03,446,0,545.75,0,6,0,0,0,14,0 
11/08/19,13:19:29,05,446,0,549.25,1.9,6,102,1,0,0,0 
11/08/19,13:19:30,07,446,0,549.5,1.9,6,102,1,0,0,0 
11/08/19,13:19:31,09,446,0,548.75,1.9,6,102,1,0,0,0 
. 
. 

等等...

我想编写删除这些头,行和数据的存储休息到一个新文件中的代码。

任何人都可以帮忙吗?

亲切的问候,

塔玛拉

+0

安装cygwin,做'grep的-v '^日期' 输入> output' :-) –

+1

使用'regexp'。它根据模式进行各种文本操作。 – Phonon

它看起来像所有的头都是一样的,我想你的意思是:日期,时间,10ms的* %%,%%,%%,%%, %%,%%,%%,%%,%%,%%,DETAILS.txt; D; %%; 10

而且您希望使用MATLAB,如果是这种情况,您必须打开文件,textscan为那一行,然后fgetl删除它。

当线条总是相同时,不需要正则表达式或类似的东西。

readID = fopen('headers.txt', 'r'); 
writeID = fopen('no_headers.txt', 'w'); 
while feof(readID) == 0 
    currLine = fgetl(readID); 
    if isempty(strfind(currLine, 'Date')) 
     fprintf(writeID, '%s\n', currLine); 
    end 
end 
fclose(readID); 
fclose(writeID);