код для Windows, GNU awk:
awk "NR==FNR {a[$0]=$0; next}; {b[$0]=$0};a[$0]==$0;END {for (i in a) {if (b[i]==0) {print a[i] >\"diff.txt\"}};for (i in b) {if (a[i]==0) {print b[i]>>\"diff.txt\"}}}" file1 file2
Выходной пример:
>type file1,file2
file1
AAAAA
44444
BBBBB
55555
CCCCC
66666
DDDDD
file2
AAAAA
11111
BBBBB
22222
CCCCC
33333
DDDDD
>awk "NR==FNR {a[$0]=$0; next}; {b[$0]=$0};a[$0]==$0;END {for (i in a) {if (b[i]==0) {print a[i] >\"diff.txt\"}};for (i in b) {if (a[i]==0) {print b[i]>>\"diff.txt\"}}}" file1 file2>match.txt
>type match.txt,diff.txt
match.txt
AAAAA
BBBBB
CCCCC
DDDDD
diff.txt
44444
55555
66666
11111
22222
33333
>
В чистом batch:
findstr /l /g:file1 file2>match.txt
findstr /lv /g:file1 file2>diff.txt
findstr /lv /g:file2 file1>>diff.txt
'Может кто-нибудь помочь мне с такой пакетной программой? - Вы имеете в виду написать один для вас? – devnull
'fc /?', 'Find /?' И 'findstr /?' Могут быть хорошей отправной точкой. – Stephan