interesanta abordare, si e de retinut pe viitor, insa changed e pe grupul de linii care s-a schimbat, si nu vad cum are sanse sa prinda spre exemplu schimbarea partiala a unei linii anume

cred ca in timpul de cautare scriam fix ce-mi trebuie cu serpisoru, dar deh, cica sa nu reinventez roata :-P

Alex

On 05-Dec-23 20:46, Mihai Osian wrote:
On Mon, Dec 4, 2023 at 12:46 PM Alex 'CAVE' Cernat via RLUG <rlug@lists.lug.ro> wrote:

    salut

    poate s-a mai lovit careva de chestia asta si a gasit o solutie
    simpla
    si eficienta, pana acum n-am gasit nimic si parca e peste mana sa
    reinventez roata, daca deja exista si se invarte pe undeva

    concret: diff-ul, fiind o scula de programare, e all or nothing,
    aka ori
    s-a pus linia, ori s-a scos; pe mine m-ar interesa ceva cat mai
    simplu
    care sa aiba si optiunea de "s-a modificat" linia respectiva
    (mdea, aici
    devine subiectiv, deci preferabil ar fi sa fie cumva configurabila
    "similaritatea" ... sau poate am noroc si merge din fuleu, pe baza
    unui
    criteriu gen daca incepe la fel atunci s-ar putea sa ...)

    a folosit cineva ceva de genul si poate recomanda? ca nea gogu gpt
    vad
    ca minte cam mult in ultimul timp 😛

    mersi

    Alex


Daca ai timp si rabdare sa il bibilesti atunci si diff-ul clasic are optiuni de formatare. De exemplu:
mike@kermix:~/tmp$ cat a
a
b
c

mike@kermix:~/tmp$ cat b
a
d
c

mike@kermix:~/tmp$ diff --unchanged-group-format='' --old-line-format='%l' --new-line-format='%l'  --changed-group-format='s-a schimbat modificarea, linia %df din A (adica "%<") se facu linia %dF (adica "%>") din B
' a b

s-a schimbat modificarea, linia 2 din A (adica "b") se facu linia 2 (adica "d") din B
mike@kermix:~/tmp$

Daca vrei si culori se poate inventa o minune de genul (cauta "ansi escape colors", desi deja o ia razna treaba): mike@kermix:~/tmp$ diff --unchanged-group-format='' --old-line-format='\033[0;31m%l\033[0m' --new-line-format='\033[1;35m%l\033[0m'  --changed-group-format='s-a schimbat modificarea, linia %df din A (adica "%<") se facu linia %dF (adica "%>") din B
' a b  | xargs echo -e
s-a schimbat modificarea, linia 2 din A (adica b) se facu linia 2 (adica d) din B
mike@kermix:~/tmp$

Sau, cel mai simplu:
mike@kermix:~/tmp$ diff -y a b
a     a
b   | d
c     c

Mihai

_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug_lists.lug.ro

Raspunde prin e-mail lui