-1



我有两个文件
A.txt

1
2
3

B.txt

1
2
3
4

我想删除那些同时出现在 A.txt 和 B.txt 中的数据。
所以输出应该是:
C.txt

4

如何通过 c++ 或 linux 机器做到这一点?

4

2 回答 2

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

于 2013-07-08T03:58:04.200 回答
1

你可以用这个

通讯 -3 a.txt b.txt

-3 用于抑制出现在两个文件中的行。

于 2013-07-08T06:39:34.387 回答