This module provides a Unix-like command `venn'. It has a function upon multiple files equivalently draw the Venn Diagam, although the output shape is quite different as summarized in a TSV table. =head1 DESCRIPTION venn в”Ђв”Ђ 複数の集合のベン図のように整理して表示  ベン図は複数の集合の関係を示します。2еЂ‹гЃ‹3個の円を重гЃеђ€г‚ЏгЃ¦й›†еђ€гЃ®й‡ЌгЃЄг‚Љг‚’з¤єгЃ™е›іг‚’ж•°е¦гЃ®ж•™з§‘書で見たことは無いでしょうか。 この例では、ファイルを4еЂ‹з”Ёж„ЏгЃ™г‚‹д»Јг‚Џг‚ЉгЃ«гЂЃгѓ—гѓг‚»г‚№зЅ®жЏ›г‚’4еЂ‹еђЊж™‚гЃ«дЅїгЃЈгЃ¦е®џйЁ“гЃ—гЃ¦гЃ„гЃѕгЃ™гЂ‚ また実演用に自作シェル関数yг‚’гЃ“гЃ“гЃ§жњЂе€ќгЃ«е®љзѕ©гЃ—гЃ¦гЃ„гЃѕгЃ™(еј•ж•°г‚’1ж–‡е—ずつばらして、改行を挿入する働きをyгЃ«жЊЃгЃџгЃ›гЃѕгЃ™)гЂ‚ $ function y(){ echo -n $* | perl -pe's/./$&\n/g' } # в†ђ Defined a shell function to demo the next. ↓ $ venn <(y ABCCCC) <(y AABDEF) <(y ABBDEF) <(y DEEEF) # Each <(...) means the process substitution. Each is treated as a file as the result of the contained command. Out follows next 4 lines: cardi. file1 file2 file3 file4 minstr maxstr 2. 2 3 3 0 'A' 'B' 1. 4 0 0 0 'C' 3. 0 3 3 5 'D' 'F' гЂЂгЃ“гЃ®дѕ‹гЃ§гЃЇгЂЃгЃ‚гЃџгЃ‹г‚‚{A,B,C,C,C,C}гЃЁ{A,A,B,D,E,F}гЃЁ{A,B,B,D,E,F}гЃЁ{D,E,E,E,F}гЃ«з›ёеЅ“гЃ™г‚‹4個のファイルがあって、 それぞれは改行区切りで1ж–‡е—гЃљгЃ¤ж јзґЌгЃ•г‚ЊгЃ¦гЃ„гЃѕгЃ™гЂ‚гЃќгЃ®г‚€гЃ†гЃЄгѓ•г‚Ўг‚¤гѓ«зѕ¤(以下、fiel1гЂњ4гЃЁгЃ™г‚‹)гЃЊvennに与えられています。 гЂЂгЃќгЃ®е‡єеЉ›гЃЇж¬ЎгЃ®г‚€гЃ†гЃЄж„Џе‘ігЃ«гЃЄг‚ЉгЃѕгЃ™гЂ‚ A,B,C,D,E,FгЃ®6еЂ‹гЃ®ж–‡е—е€—гЃЇ3個のグループに分割されて、 AгЂњBгЃЁгЂЃCгЃЁгЂЃDгЂњFгЃ«гЃЄг‚ЉгЃѕгЃ™(еЏіеЃґ2е€—г‚’еЏ‚з…§)гЂ‚ гЃќг‚ЊгЃћг‚ЊгЃ®з•°гЃЄг‚‹и¦Ѓзґ гЃ®ж•°гЃЇ2,1,3еЂ‹гЃ§гЃ™(е·¦еЃґ1е€—з›®гѓ”гѓЄг‚Єгѓ‰д»гЃЌгЃ®ж•°г‚’еЏ‚з…§)гЂ‚ それらはfile1гЂњ4гЃ®гЃ©г‚ЊгЃ«гЂЊеђ«гЃѕг‚ЊгЃ¦гЃ„г‚‹гЃ‹пјЏеђ«гЃѕг‚ЊгЃЄгЃ„гЃ‹гЂЌгЃ®гѓ‘г‚їгѓјгѓігЃЊ дёгЃ®4е€—гЃ§гЂЊ0гЃ§гЃ‚г‚‹гЃ‹пјЏ0以外の数であるか」で示します。 0д»Ґе¤–гЃ®ж•°гЃ§гЃ‚г‚‹е ґеђ€гЃ«гЃќгЃ®ж•°гЃЇгЂЃ гЂЊж–‡е—е€—гЃЊгЃ®гЃ№дЅ•е›ћеђ«гЃѕг‚ЊгЃ¦гЃ„г‚‹гЃ‹гЂЌг‚’3г‚°гѓ«гѓјгѓ—Г—4ファイルの全組合せごとに示します。 жњЂе€ќгЃ«ж›ёгЃ„гЃџгЂЊ3гѓ‘г‚їгѓјгѓігЂЌгЃЁгЃЇгЂЃз•°гЃЄг‚‹6йЂљг‚ЉгЃ®AгЂњFгЃ®ж–‡е—е€—гЃ®гЃќг‚ЊгЃћг‚ЊгЃ«гЃ¤гЃ„гЃ¦4ファイルに「現れたか/否か」を「1пјЏ0гЂЌгЃ§ иЎЁзЏѕгЃ—гЃџгЃЁгЃЌгЃ«гЂЃAгЃЇ1110гЂЃBгЃЇ1110гЂЃCгЃЇ1000гЂЃDгЃЇ0111гЂЃEгЃЇ0111гЂЃFгЃЇ0111となって、これら6гѓ‘г‚їгѓјгѓігЃЇз•°гЃЄг‚‹3гѓђг‚їгѓјгѓігЃ« 分類出来て、その分類を各グループとしていたのでした。 гЂЂгЃ“гЃ®г‚ігѓћгѓігѓ‰vennは、多数のファイルに対して、 値の包含関係や重なりを一目で把握するのに便利です。 дёЉиЁгЃ®дѕ‹гЃ гЃЁгЂЃ CгЃЁDгЂњFгЃЇеђЊгЃгѓ•г‚Ўг‚¤гѓ«гЃ«е‡єзЏѕгЃ—гЃЄгЃ„дє‹гЃЊ0のパターンからиЄгЃїеЏ–г‚ЊгЃѕгЃ™гЃ—гЂЃ file1гЃ®жЊЃгЃ¤2+1+0=3еЂ‹гЃ®ж–‡е—е€—гЃЁfile4гЃ®0+0+5=5еЂ‹гЃ® ж–‡е—е€—гЃЇгЂЃ 共通部分が無いことが0の出現パターンからиЄгЃїеЏ–г‚ЊгЃѕгЃ™гЂ‚ д»–гЂЃгЃџгЃЁгЃ€гЃ°CгЃЁгЃ„гЃ†ж–‡е—е€—гЃЇгЂЃfile1のみにそれ以外に現れず、 гЃќгЃ—гЃ¦гЃќгЃ®г‚€гЃ†гЃЄе‡єзЏѕгѓ‘г‚їгѓјгѓіг‚’з¤єгЃ™гЃ®гЃЇж–‡е—е€—гЃЇCгЃ®гЃїгЃ«й™ђг‚ЉгЂЃе‡єзЏѕе›ћж•°гЃЇ4+0+0+0=4гЃ§гЃ‚г‚‹гЃ“гЃЁг‚‚иЄгЃїеЏ–г‚ЊгЃѕгЃ™гЂ‚ гЂЂгЃ“гЃ®vennは実務で使うと非常に便利で、複数ファイルに現れるデータの重なり具合について、多くの知見が一目で得られます。 Copyright (c) 2021 Toshiyuki SHIMONO. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.