当前位置: 首页 > 面试题库 >

提取2组/文件之间的唯一值

周超英
2023-03-14
问题内容

在linux / shell env中工作,如何完成以下任务:

文本文件1包含:

1
2
3
4
5

文本文件2包含:

6
7
1
2
3
4

我需要提取文件2中不在文件1中的条目。因此,在此示例中为“ 6”和“ 7”。

如何从命令行执行此操作?

非常感谢!


问题答案:
$ awk 'FNR==NR {a[$0]++; next} !a[$0]' file1 file2
6
7

该代码的工作方式说明:

  • 如果我们正在处理file1,请跟踪我们看到的每一行文本。
  • 如果我们正在处理file2,但没有看到行文本,则打印它。

详细说明:

  • FNR 是当前文件的记录号
  • NR 是所有输入文件中的当前总记录号
  • FNR==NR 仅在我们读取文件1时为真
  • $0 是当前文本行
  • a[$0] 是一个哈希,其键设置为当前文本行
  • a[$0]++ 跟踪我们已经看到当前文本行
  • !a[$0] 仅当我们没有看到行文本时才为真
  • 如果上述模式返回true,则打印文本行,这是默认的awk行为,未提供任何明确的操作


 类似资料:
  • 问题内容: 我大约有150个文本文件,其中填充了字符信息。每个文件包含两个唯一词()alpha和bravo,我想提取这些唯一词之间的文本并将其写入不同的文件中。 手动地,我可以按住CTRL + F来输入两个单词,并在两个单词之间复制文本,我只想知道如何使用一个程序(最好是Python)来处理许多文件。 问题答案: 您可以为此使用正则表达式。 我的test.txt文件 现在使用open读取文件,而不

  • 问题内容: 我需要从一个巨大的文件中提取两个匹配模式之间的特定行。 假设(文件中唯一)匹配特定内容, (文件中不唯一)匹配之后的下一个立即匹配项。然后我要提取之间的所有行,包括 样本文件内容 期望的输出 如果您能帮助我解决这个问题,将不胜感激 问题答案: 这可以是一种方法: 找到时,则使变量p = 1。 它仅在时打印行。这是通过条件完成的。如果为true,它将执行默认的awk操作,即。否则,事实并

  • 我正在创建一个要导入到我的数据库的Hybris弹出文件。 我想用文件中的数据执行INSERT_UPDATE操作,因此我需要告诉Hybris哪些列需要唯一,以便它知道何时更新记录而不是插入记录。 我知道要告诉Hybris某个列需要是唯一的,我可以向该列添加唯一属性,如下所示: 但在我上面的例子中,我如何告诉Hybris Firstname Lastname列的组合必须是唯一的?

  • 问题内容: 我想从放置在和标记中的HTML页面提取文本,因此我可以开始对该页面进行标记化,以便为每个页面构造倒排索引,以便回答搜索查询。 我如何使用jsoup 获取标签 要在该参数中写入的字符串是什么? 问题答案: 这可以做的工作 这是您可以使用的所有选择器的列表。 假设您有这个html: 要获得结果,您应该使用: 要么 假设现在您具有以下复杂的html 要从两个标签中获取值,您必须执行以下操作

  • 我希望将子组件值绑定到父组件。在< code>@Input()和< code>[(ngModel)]都不够用的情况下,如何做到这一点? 这是一个扑通

  • 问题内容: 可以说我有一个包含以下内容的文本文件 现在,我需要编写一个Python代码,该代码将读取文本文件并将内容在“开始”和“结束”之间复制到另一个文件。 我写了下面的代码。 我没有获得预期的期望输出,只是开始了。我想要得到的是开始和结束之间的所有界限。不包括开始和结束。 问题答案: 万一您的文本文件中有多个“开始”和“结束”,这会将所有数据一起导入,不包括所有“开始”和“结束”。