差异:忽略只有标签的行

时间:2012-09-21 22:02:55

标签: regex diff

我正在尝试区分文件,并确定它们是否相同,但忽略所有空格。

使用diff时,-b告诉diff忽略给定行上的空格。 -B选项告诉它忽略所有空行。但是,如果您的行只包含空格,-B-b似乎无法合作。

我已经使用了-I选项,我希望diff忽略所有只包含空格的行,当行只包含空格时可以正常工作,但\t没有似乎匹配制表符。

我在网上找到一个提到您需要使用POSIX regexp的参考,但POSIX声明:blank:将匹配任何空格(包括制表符)。这也行不通。

以下是我正在尝试做的一个示例。理想情况下,我的diff行会说明t1.txtt2.txtt3.txt都是相同的。

bash#> echo hi > t1.txt
bash#> echo hi > t2.txt
bash#> echo hi > t3.txt
bash#> echo " " >> t2.txt
bash#> echo -e "\t" >> t3.txt
bash#> diff -BbaNq -I "^[ \t]*$" t1.txt t2.txt
bash#> diff -BbaNq -I "^[ \t]*$" t1.txt t3.txt
Files t1.txt and t3.txt differ
bash#> diff -BbaNq -I "^[:blank:]*$" t1.txt t3.txt
Files t1.txt and t3.txt differ
bash#>

diff语法的任何帮助都会非常有用。

1 个答案:

答案 0 :(得分:0)

试试这个:

diff -wBt -u t1.txt t2.txt