2012-04-15 66 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