如何比较两个文本文件为相同的确切文本使用BASH脚本?



假设我有两个文本文件,我需要从中提取数据。两个文件的文本如下:

ami-1234567
ami-1234567654
ami-23456

文件- 2. - txt

ami-1234567654
ami-23456
ami-2345678965

我想要file2.txt的所有数据看起来与file1.txt相同。

这是我的第一个评论,所以我希望它能工作,

但是你可以尝试使用diff:

diff file1.txt file2.txt

您试过join了吗?

join -o 0 File1.txt File2.txt
ami-1234567654
ami-23456

备注:要使join正常工作,它需要对您的文件进行排序,这似乎是您的示例的情况。

只是另一个选项:

$ comm -1 -2  <(sort file1.txt) <(sort file2.txt)

选项指定"unique"第一个文件(-1)和第二个文件(-2)中的石灰应省略。

基本相同
$ join <(sort file1.txt) <(sort file2.txt)

请注意,如果您不想创建中间临时文件,那么这两个示例中的排序都不需要创建中间临时文件。

我不知道我是否正确理解了你:

,但你可以尝试排序这些文件(提取后):

sort file1 > file1.sorted
sort file2 > file2.sorted

最新更新