1
我想區分文件,並確定它們是否相同,但忽略所有空格。差異:忽略只有標籤的行
當使用diff
時,-b
告訴diff
忽略給定行上的空白。 -B
選項告訴它忽略所有空行。但是,如果您有一行只包含空格的行,則-B
和-b
似乎不能一起工作。
我已經使用-I
選項,我希望比較忽略所有隻包含空格的行,當行只包含空格時工作正常,但\t
似乎不匹配製表符。
我在網上找到一篇提到你需要使用POSIX正則表達式的參考文獻,但POSIX指出:blank:
將匹配任何空格(包括標籤)。那也行不通。
下面是我想要做的一個示例。理想情況下,我的diff
系列會聲明t1.txt
,t2.txt
和t3.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
的語法將是非常有用的。
「-u」無關你的問題,我只是喜歡統一格式:) – Serge
否 - 這是行不通的。它適用於t2(有空格),但不適用於t3,它具有選項卡。: – John
添加't'開關 - 它會將選項卡擴展爲空格 – Serge