how to compare two files line by line?

2 次查看(过去 30 天)
I want to compare two files line by line and count how many lines they have in common , I tried the code below , but it doesn't work , somehow MATLAB stops working , ">>" just disappear
f = fopen('nv.txt','at');
fid = fopen('test.txt');
k = 0;
while ~feof(fid)
s1 = fgetl(fid);
if ~isempty(s1)
while ~feof(f)
s2 = fgetl(f);
if ~isempty(s2)
if(strcmp(s1,s2))
k = k+1;
end
end
end
end
end
fclose(fid);
fclose(f);
disp(k);
  1 个评论
Image Analyst
Image Analyst 2016-3-12
If the second line is missing in one of the files, (and the rest of the lines are just moved up one) then do you say that from line 2 on they are all different?
What if the lines are all there but in some different order?

请先登录,再进行评论。

采纳的回答

MHN
MHN 2016-3-12
编辑:MHN 2016-3-12
f = fopen('nv.txt');
fid = fopen('test.txt');
k = 0;
while ~feof(fid)
s1 = fgetl(fid);
frewind(f) % start from the first line of the second file
if ~isempty(s1)
while ~feof(f)
s2 = fgetl(f);
if ~isempty(s2)
if(strcmp(s1,s2))
k = k+1;
end
end
end
end
end
fclose(fid);
fclose(f);
disp(k);
  3 个评论
MHN
MHN 2016-3-12
Please use the "accepted answer" button. Are you sure? I run the program line by line and it compares every lines include the first one.
Zineb EL MORCHID
Zineb EL MORCHID 2016-3-12
Yes Thank you, it works , I find out that one of the lines starts with space.

请先登录,再进行评论。

更多回答(2 个)

Image Analyst
Image Analyst 2016-3-12
Did you try the Compare tool on the Editor tool strip?
  2 个评论
Zineb EL MORCHID
Zineb EL MORCHID 2016-3-12
Not really,I actually want the code to use it as a function in my program. Thank you

请先登录,再进行评论。


r r
r r 2021-5-11
I have two files with similar data and I want to extract them into a file, and I also want to print the same line for the same data in the two files
Please help me
F1 = fopen('E.txt');
T1 = textscan(F1,'%s', 'delimiter', '\n');
fclose(F1);
F2 = fopen('G.txt');
tt2 = textscan(F2,'%s', 'delimiter', '\n');
fclose(F2);
T1s = char(T1{:});
T2s = char(T2{:});
[C,ix,ic] = intersect(T1s,T2s,'rows')
%%%%%%%%%%%%%%%%%%out Fiel :::
dlmwrite('R.txt',C,'%.6f');

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by