diff
compara linhas , consulte man diff
:
diff - compare files line by line
Ignorar o espaço em branco significa que foo bar
corresponderá a foobar
se estiver na mesma linha . Como seus padrões em d1.txt abrangem várias linhas, os arquivos sempre serão diferentes. Na verdade, eu não li o código-fonte, mas acho que diff
funciona como:
for each line number X in file1;
line1 = line X from file1
line2= line X from file2
If line1 is equal to line2 the do something
else do something else
A primeira linha do seu arquivo1 não é igual à primeira linha do arquivo2, portanto, uma diferença é relatada. Se você realmente quiser verificar se os arquivos contêm exatamente os mesmos caracteres que não são espaços em branco, tente algo assim:
diff <(perl -ne 's/\s*//xg; print' d1.txt) <(perl -ne 's/\s*/g; print' d2.txt)