对于 shell 程序员来说,这可能是一个非常基本的问题。 但是假设我有一个文本文件 A 和 B B 是 A 的子集。
我想创建一个包含 (A-B) 数据的文本文件 C。
因此省略所有公共(public)行。
文件中的行是数字数据:like
id , some aspect, other aspec.
谢谢。
最佳答案
sort a b | uniq -u
如果你想要A和B之间相同的行,你可以使用uniq -d
sort a b | uniq -d
这当然假设 A 和 B 中的数据完全相同。数据集中不能有任何丢失的空格或制表符。如果有,您必须先使用 sed
、tr
或 awk
清理数据。
编辑
作为彼得。 O 指出,如果文件 a
中恰好有完全相同的副本,这将失败。如果这是一个问题,您可以通过执行以下操作来解决它:
sort <(sort -u a) b | uniq -u
关于bash - 基本的shell编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342018/