bash - 基本的shell编程

标签 bash shell awk

对于 shell 程序员来说,这可能是一个非常基本的问题。 但是假设我有一个文本文件 A 和 B B 是 A 的子集。

我想创建一个包含 (A-B) 数据的文本文件 C。

因此省略所有公共(public)行。

文件中的行是数字数据:like

id , some aspect, other aspec.

谢谢。

最佳答案

使用sortuniq

sort a b | uniq -u

如果你想要A和B之间相同的行,你可以使用uniq -d

sort a b | uniq -d

这当然假设 A 和 B 中的数据完全相同。数据集中不能有任何丢失的空格或制表符。如果有,您必须先使用 sedtrawk 清理数据。

编辑

作为彼得。 O 指出,如果文件 a 中恰好有完全相同的副本,这将失败。如果这是一个问题,您可以通过执行以下操作来解决它:

sort <(sort -u a) b | uniq -u

关于bash - 基本的shell编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342018/

相关文章:

linux - 如何在 bash 中读取字符串或将整数转换为字符串?

linux - Bash - 使用 sed 更改配置文件

linux - 替换循环中大行中的每第 n 次出现

linux - awk 命令修改文件中的列

string - 均匀分布重复字符串

bash - 在传递给 unix 程序的 Windows 路径中转义反斜杠

java - 使用 "> filename"时不打印到文件的 System.out.println

python -/bin/sh : 1: Syntax error: word unexpected - Using os. system() 来自 Python

Linux ubuntu awk。找到包含 2 个相同单词的句子放在它们附近

bash - URL 替换为 sed