Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] diff wynik do pliku [cross]

To: winnt@man.lodz.pl
Subject: Re: [WINNT] diff wynik do pliku [cross]
From: wozniak grzegorz <grzes@wp.pl>
Date: Mon, 17 Mar 2014 08:59:56 +0100
rs wrote:

> plik A względem, którego następuje porównywanie pliku B
> 
> upd-aa-ss
> upd-ab-12n
> upd-ab-20n
> upd-abo-3x2
> upd-abo-3x3
> upd-abrm-60
> upd-absk-40
> upd-absk-60
> upd-absk-80
> upd-ago-08
> upd-ago-12
> upd-ago-15
> upd-ago-20
> upd-ais-190/sf
> upd-ach-48
> upd-ach-53
> upd-ach-57
> upd-ach-811
> upd-aco-11
> upd-ad-12
> upd-ad-16
> upd-ad-20
> upd-ad-24
> upd-adp-48
> upd-adp-96
> upd-af-dn
> upd-afpc-10
> upd-afpc-5
> upd-afpc-7
> upd-ais-100/sf
> [...]
> 
> plik B w którym chce znaleźć brakujące elementy
> 
> upd-ab-12n
> upd-ab-20n
> upd-abo-3x2
> upd-abrm-60
> upd-absk-100
> upd-absk-120
> upd-absk-32
> upd-absk-40
> upd-absk-80
> upd-ach-46
> upd-ach-48
> upd-ach-53
> upd-ach-57
> upd-ach-811
> upd-aco-11
> upd-ad-12
> upd-ad-16
> upd-ad-20
> upd-ad-24
> upd-adp-96
> upd-af-dn
> upd-afpc-5
> upd-afpc-7
> [...]
> 
> che mieć DOKLADNIE taki wynik:
> 
> upd-aa-ss
> upd-abo-3x3
> upd-absk-60
> upd-ago-12
> upd-ago-15
> upd-ago-20
> upd-ais-190/sf
> upd-adp-48
> upd-afpc-10
> upd-ais-100/sf

Niestety programu który zrobi nie znam, ale może się przekonasz do użycia
cmd, wszystkie potrzebne kafelki znajdziesz w tym pakiecie:  
http://gnuwin32.sourceforge.net/packages/coreutils.htm .
Jedynym warunkiem jest żeby linie w obu plikach były unikalne, ale takie są:
[gwozniak@skin tmp]$ for f in A B ; do echo $f ; cat $f ; done
A
upd-aa-ss
upd-ab-12n
upd-ab-20n
upd-abo-3x2
upd-abo-3x3
upd-abrm-60
upd-absk-40
upd-absk-60
upd-absk-80
upd-ago-08
upd-ago-12
upd-ago-15
upd-ago-20
upd-ais-190/sf
upd-ach-48
upd-ach-53
upd-ach-57
upd-ach-811
upd-aco-11
upd-ad-12
upd-ad-16
upd-ad-20
upd-ad-24
upd-adp-48
upd-adp-96
upd-af-dn
upd-afpc-10
upd-afpc-5
upd-afpc-7
upd-ais-100/sf
B
upd-ab-12n
upd-ab-20n
upd-abo-3x2
upd-abrm-60
upd-absk-100
upd-absk-120
upd-absk-32
upd-absk-40
upd-absk-80
upd-ach-46
upd-ach-48
upd-ach-53
upd-ach-57
upd-ach-811
upd-aco-11
upd-ad-12
upd-ad-16
upd-ad-20
upd-ad-24
upd-adp-96
upd-af-dn
upd-afpc-5
upd-afpc-7
[gwozniak@skin tmp]$ for f in A B ; do echo -n "$f;" ; cat $f | wc -l |
tr '\n' ';' ; sort $f | uniq | tee $f.srt | wc -l ; done  
A;30;30
B;23;23
i wreszcie wynik:
[gwozniak@skin tmp]$ comm -2 -3 A.srt B.srt 
upd-aa-ss
upd-abo-3x3
upd-absk-60
upd-adp-48
upd-afpc-10
upd-ago-08
upd-ago-12
upd-ago-15
upd-ago-20
upd-ais-100/sf
upd-ais-190/sf

Możesz te wszystkie polecenia zapisać w skrypcie i masz gotowe narzędzie
(tak wiem nie chcesz programować ale lepszy wróbel w garści niż gołąb na
dachu).

-- 
Pozdrawiam
Grzegorz Woźniak
xmpp:skinek_at_jabster_pl



<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>