2013-07-03 3 views
1

У меня есть два файла FILE1.TXT и file2.txtСравнение двух файлов с помощью партии

File1.txt: 

abc 
def 
xyz 

File2.txt 

abc 

Сравните оба FILE1.TXT и file2.txt и создать два файла, один с перепадами и другие показывая сходство. Может ли кто-нибудь помочь мне с такой пакетной программой.

+3

'Может кто-нибудь помочь мне с такой пакетной программой? - Вы имеете в виду написать один для вас? – devnull

+1

'fc /?', 'Find /?' И 'findstr /?' Могут быть хорошей отправной точкой. – Stephan

ответ

2

код для Windows, GNU :

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 

> 

В чистом :

findstr /l /g:file1 file2>match.txt 
findstr /lv /g:file1 file2>diff.txt 
findstr /lv /g:file2 file1>>diff.txt