0

我有两个文件,一个内容类似于以下内容:

1.something344343
2.something2dsdsf
4.somethingdsddfsd
5.something920j329

第二个文件将是:

1.somethingwoimewoiew
3.something9jwe90jew
7.something90kjwe90ewk

本质上,第一个文件比第二个文件有更多编号的行,第一个文件最多达到 39,000 行,而第二个文件最多只有 23,000 行。话虽如此,有人知道我如何将第一个文件分成文件 2 中包含的行号(冒号前面的数字)和文件 2 中未包含的行(这将在 bash 环境中)。最终结果将是这样的:

lines included in second file:
1.something344343

lines not included in second file:
2.something2dsdsf
4.somethingdsddfsd
5.something920j329

我已经考虑过可以用来执行此操作的不同方法,但不幸的是还没有提出任何有效的解决方案,如果有人可以帮助解决这个问题,我将非常感激,谢谢!

4

2 回答 2

5

第二个文件中包含的行:

$ join -t"." -o 0,1.2 f1 f2
1.something344343

第二个文件中不包含的行:

$ join -t"." -v1 f1 f2
2.something2dsdsf
4.somethingdsddfsd
5.something920j329
于 2012-10-26T17:00:00.243 回答
1

只显示行号,不显示行内容:

$ diff --unchanged-group-format=$'Lines included in second file:\n%=' \
       --old-group-format=$'Lines not included in second file:\n%<' \
       --new-group-format='' \
       <(awk -F. '{print $1}' file1) <(awk -F. '{print $1}' file2)
Lines included in second file:
1
Lines not included in second file:
2
4
5
于 2012-10-26T17:02:03.317 回答