我有两个文件
A.TXT
1
2
3
B.txt
1
2
3
4
我想删除A.txt和B.txt中出现的那些数据
所以输出应该是:
C.txt
4
如何通过c ++或linux机器执行此操作?
答案 0 :(得分:1)
您可以通过以下步骤对此进行归档:
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
答案 1 :(得分:1)
你可以用这个
comm -3 a.txt b.txt
-3用于抑制两个文件中出现的行。