如何根据另一个文件的内容对一个文件的内容进行排序



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

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

我已经考虑过可以用来做到这一点的不同方法,但是不幸的是,尽管我真的会很感激,但还无法提出任何有效的解决方案,如果有人能提供帮助,谢谢!<<

第二个文件中包含的行:

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

未包含在第二个文件中的行:

$ join -t"." -v1 f1 f2
2.something2dsdsf
4.somethingdsddfsd
5.something920j329

仅显示行号,而不是行内容:

$ 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

相关内容

  • 没有找到相关文章

最新更新