在基于Linux的系统上,我可以轻松比较两个文件,例如:
diff file1.txt file2.txt
...然后看看它们之间的区别。
如果我想将file2.txt
唯一的所有行都应用到file1.txt,以便file1.txt
现在将包含它从file2.txt
开始的所有行,该怎么办?以前没有?有简单的方法吗?
答案 0 :(得分:3)
patch
您可以使用diff
的输出来创建patch file。
diff original_file file_with_new_lines > patch_file
您可以编辑patch_file
以仅保留添加内容,因为您只需要新行。
然后您可以使用patch
命令来应用此补丁文件:
patch original_file patch_file
答案 1 :(得分:0)
如果您不介意将已排序的差异添加到文件中,则可以使用comm:
cat file1.txt <(comm -13 <(sort f1.txt) <(sort f2.txt)) > file1.txt.patched
或
comm -13 <(sort f1.txt) <(sort f2.txt) | cat file1.txt - > file1.txt.patched
这会将file2.txt中的唯一行附加到file1.txt。