我有两个文件
A.txt
1
2
3
B.txt
1
2
3
4
我想删除那些同时出现在 A.txt 和 B.txt 中的数据。
所以输出应该是:
C.txt
4
如何通过 c++ 或 linux 机器做到这一点?
您可以通过执行以下步骤将其存档:
1 加载 A.txt int setA
std::set<std::string> setA;
2 将 B.txt 加载到 setB 中
std::set<std::string> setB;
3 获取 setA 和 setB 到 setC 的交互
setC = set_intersection(setA.begin(), setA.end(),
setB.begin(), setB.end(),
setC);
4 去掉setA中的常用数据
std::set<std::string> setDA;
set_difference(setA.begin(), setA.end(),
setC.begin(), setC.end(),
setDA);
// write content of setDA back to file A
5 对 setB 做同样的事情并写回文件 B
你可以用这个
通讯 -3 a.txt b.txt
-3 用于抑制出现在两个文件中的行。