On 03/17/2015 12:34 AM, Razvan Crainea wrote:
On Mon, Mar 16, 2015 at 10:37 PM Victor Ciurel via so <so@cursuri.cs.pub.ro <mailto:so@cursuri.cs.pub.ro>> wrote:

    De asemenea, imi poate
    explica cineva comportamentul diff de mai sus, pentru ca eu inteleg ca
    rulat cu -B, se vor ignora randurile libere.


Dacă folosești opțiunea -B, când diff găsește o linie goală într-un fișier, verifică dacă în celălalt fișier este _cel puțin_ o linie goală. Concret, în cazul tău, diff găsește o linie goală între True și False în cel de-al doilea fișier, în schimb în primul fișier nu era niciuna. Deci testul returnează fals. Dacă erau două sau mai multe linii goale între True și False, diff returna succes.

Am un contraexemplu pentru argumentul acesta:

"True\n\nFalse\n\n" vs "True\nFalse\n\n"

Comparand cu diff, aceste apar ca fiind identice, desi exista o linie libera intre True si False in primul caz, dar nu si in al doilea.

As vrea sa mai inteleg cum anume au fost generat fisierul de referinta pentru urmatoarele bucati de input (test20.in):

find brady
find into _test/outputs/test20.out.1
find jamie

Ce au ca output la stdout (test20.ref):

"True\n\nFalse\n"

Nu inteleg din ce motiv ar aparea o linie libera intre True si False. Pentru fiecare comanda ce afiseaza in fisier, ar trebui sa apara o linie libera si la stdout? Sau dupa fiecare comanda rulata vom afisa o linie goala?

Victor
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui