Linux 比较两个文件并应用差异

Linux 比较两个文件并应用差异,linux,bash,shell,diff,Linux,Bash,Shell,Diff,在基于Linux的系统上,我可以轻松比较两个文件,例如: diff file1.txt file2.txt …看看他们之间的区别 如果我想将file2.txt独有的所有行应用于file1.txt,这样file1.txt现在将包含它以前没有的所有+来自file2.txt的行,该怎么办?有一种简单的方法吗?如果您不介意将排序后的差异附加到文件中,您可以使用: cat file1.txt使用 您可以使用的输出来创建 您可以编辑patch_file以仅保留添加的内容,因为您只需要新行 然后可以使用命

在基于Linux的系统上,我可以轻松比较两个文件,例如:

diff file1.txt file2.txt
…看看他们之间的区别


如果我想将
file2.txt
独有的所有行应用于file1.txt,这样
file1.txt
现在将包含它以前没有的所有+来自
file2.txt
的行,该怎么办?有一种简单的方法吗?

如果您不介意将排序后的差异附加到文件中,您可以使用:

cat file1.txt使用
  • 您可以使用的输出来创建

  • 您可以编辑
    patch_file
    以仅保留添加的内容,因为您只需要新行

  • 然后可以使用命令应用此修补程序文件:

    patch original_file patch_file
    

  • 你试过这个命令了吗?你需要
    diff-u
    @RonanBoiteau我问这个问题不久就找到了。虽然我不知道如何只对一个文件应用更改。另一个可供选择的方法是使用
    merge
    命令。谢谢大家的建议。请把它们做成答案,这样你就可以得到信任。不是我的否决票,而是在目标文件的末尾追加排序的行比在特定上下文中添加任意缺少的行要约束得多。
    comm -13 <(sort f1.txt) <(sort f2.txt) | cat file1.txt - > file1.txt.patched
    
    diff original_file file_with_new_lines > patch_file
    
    patch original_file patch_file