2012-04-15 34 views
0

我想使用diff Unix命令来比较输出文件。如何使用diff命令忽略上次输入?

但是,有时在输出结尾有一个冗余的“\ n”,但我仍然想把文件视为相同。

说我这样的输出:

XXXXX 
XXXXX 

和:

XXXXX 
XXXXX\n 

(不能得到它显示一个空行,所以我写\ n)的

我会喜欢能够使用unix diff命令stil认为这两个输出是相等的。

为了让自己清楚,我只想忽略最后只能输入(“\ n”)。其余的不应该被忽视。

例如,这两个输出不应该considred等于:

XXXXX 

XXXXX 

XXXXX 
XXXXX 

感谢

+0

你有一个实际的'\ r \ N'文件中,或者只是一个额外的空行('\ n')? – 2012-04-15 11:35:44

回答

4

你已经尝试了-b选项:

-b, --ignore-space-change 
      ignore changes in the amount of white space 

http://unixhelp.ed.ac.uk/CGI/man-cgi?diff

如果你只希望排除最后可能的新行尝试用sed中删除它通过管道将结果DIFF前:

sed '${/^$/d}' file1 | diff - file2 
+0

...或'-B',那'忽略其行全部空白的变化' – Saphrosit 2012-04-15 11:37:59

+0

@barsju我只需要忽略最后一次输入。所有其他字符空间/进入对我来说都很重要。看看我的编辑。谢谢 – RanZilber 2012-04-15 11:44:18

+0

使用sed添加了另一个解决方案 – barsju 2012-04-15 12:39:11