并排比较两个文件,左列上的新行不匹配

Ada*_*dam 5 unix bash diff file-comparison

这已经让我度过了愉快的半天,我确信这样的解决方案必须存在(如果没有,那么我正在编写一个),但是唉,问题就在这里。

我有两个文件,hpc.sorted.modules.txtbduc.sorted.modules.txt. 我想要完成的是显示两个文件的并排比较,其中任何不在任一文件中的更改都在其空列中。我不想diff附加到同一行,> <或者|如果它们不匹配。

示例输出:http : //pastebin.com/raw.php?i=sr20gyWz使用

diff -y -W 100 hpc.sorted.new.list bduc.sorted.new.list
Run Code Online (Sandbox Code Playgroud)

为了进一步强调这一点,如果你看一下这个例子,这条线:

bfast/0.7.0a                      | bedtools/2.6.1
Run Code Online (Sandbox Code Playgroud)

不应该存在。相反,它们应该在单独的行上,在左列或右列中有一个空行。

小智 3

假设屏幕宽度(-W 选项)是偶数,请尝试以下操作

diff --expand-tabs -W 100 -y  hpc.sorted.new.list bduc.sorted.new.list |
awk -v W=100 '(substr($0,W/2,1)=="|")
                  {left=substr($0,1,(W/2)-1);print left "<";
                   right=substr($0,(W/2)+1);printf "%" ((W/2)-1) "s>%s\n"," ", right;
                   next;}1'
Run Code Online (Sandbox Code Playgroud)