[identity profile] strange-way.livejournal.com posting in [community profile] useful_faq
Доброй ночи.

Есть три списка слов. 5000, 7000 и 1800.
Нужно сравнить первые два и общие члены списков сравнить с третьим, вычтя его.
Как это можно сделать стандартными средствами без программирования?
Экселем там или Акцессом?
Может еще как-то...


Подскажите, а?...

Date: 2006-12-07 10:10 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Стандартными средствами Unix (или Cygwin) - с легкостью. Есть утилита comm, которая сравнивает упорядоченные списки и выдает на выбор любую комбинацию из "только в первом списке", "только во втором списке" и "в обоих списках". Так что за два шага получится желаемый результат.

Date: 2006-12-07 10:11 pm (UTC)
From: [identity profile] langsamer.livejournal.com
Ага, инсталляция Цигвина для человека, не желающего иметь ничего общего с программированием - то еще развлечение ;)

Date: 2006-12-07 10:16 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Можно и без цыгвина:

http://unxutils.sourceforge.net/

Date: 2006-12-07 10:33 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Построчное, и файлы должны быть предварительно отсортированы.

Date: 2006-12-07 11:17 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Просто по алфавиту.

Date: 2006-12-07 10:19 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Упомянутые два шага:

comm -12 файл1 файл2 > tmpfile
comm -23 tmpfile файл3 > result

или, без промежуточного файла:

comm -12 файл1 файл2 | comm -23 - файл3 > result