2016-09-28 39 views
1

我不完全确定我会做什么样的diff命令来匹配我所需要的。但基本上我有两个不同的目录,里面有我需要比较的文件,并概述了其中的变化。但是在一组文件中,它们基本上在行尾有'1'。使用diff命令,忽略行末的字符

一个例子是,如果比较这两个对象

文件1 /的1.txt

I AM IDENTICAL 

文件2/1.txt的

I AM IDENTICAL 1 

所以我只是想diff命令在行末排除'1'并向我显示实际上有变化的文件。到目前为止,我想出了类似

diff file1/ file2/ -rw -I "$1" | more 

但这并不起作用。

道歉,如果这是一个显而易见的问题。

+0

这不是什么'diff',我怀疑是否有直接的解决方案。相反,我建议你使用类似'sed'的东西去除不需要的输入部分,然后将结果输入到'diff'命令中。 – arkascha

+0

@arkascha任何关于我如何去做的建议。我不太熟悉sed命令。 –

回答

0

如果文件和/或尺寸的数量并不多,你可以眼球的差异,并简单地使用vimdiff命令将两个文件并排

vimdiff File1/1.txt File2/1.txt 

否则比较,为arkascha建议,首先你需要在比较之前修改文件以消除结尾字符。

+0

我正在比较1000个文件,所以不幸vimdiff并不是真正的选择。你知道我该如何去使用sed来修改所有的文件,一次删除行尾的'1'。 –

+0

如果文件中的所有行都包含字符1,则可以使用以下sed命令将其删除:'sed's/1 $ //'input.txt> output.txt'。 [edit]:显然你需要在整个文件上有for-loops(也许在bash脚本文件中),并将这个命令应用于所有文件名(input.txt)。 – MomoPP