微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复制unix中两个文件之间的差异

首先,哪个是最好的,最快的UNIX命令,以获得两个文件间的差异? 我尝试使用差异来做到这一点(下文)。

我尝试了Neilvert Noval在这里给出的答案 – 逐行比较两个文件,并在另一个文件生成差异

代码

diff -a --suppress-common-lines -y file1.txt file2.txt >> file3.txt

但是,在不同的路线之前,我也得到了很多空间和一个符号。 我如何解决这个问题? 我正在考虑删除尾部空格和第一个“>”,但不知道这是否是一个整洁的修复。

为什么我不能用Bash For-Loop使用Unix Nohup?

在Perl脚本中使用Bash环境variables?

我如何计算远程git存储库的总行数

variables的一部分是可变的

脚本获得git工作目录根?

我的file1.txt有 –

Hello World! Its such a nice day! #this is a newline and not a line of text#

我的file1.txt有 –

Hello World! Its such a nice day! Glad to be here! #this is a newline and not a line of text#

输出 – “#很多空间在这里#>很高兴在这里:)”

预期产出 –很高兴在这里:)

赛后与sed可以得到下一行的长度吗?

Linux – kill -k开关如何在超时命令中工作

bash脚本删除'x'字符数目在一个目录中多个文件名的结尾?

文件读入variables – Bash脚本take2

cp:之后缺less目标文件操作数

另一种获得差异的方法是使用awk:

awk 'FNR==NR{a[$0];next}!($0 in a)' file1 file2

虽然我必须承认,我没有运行任何基准,也不能说哪个是最快的解决方案。

diff的-y选项使得它产生一个“并排”的差异,这就是为什么你有空间。 尝试-u 0为统一格式,上下文为零行。 这应该打印:

+Glad to be here:)

加号表示该行被添加,而减号意味着被删除

diff -a --suppress-common-lines -y file1.txt file2.txt|tr 'a >' '' |awk '{print $1}' >>file3.txt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐