次の表は、操作したいデータの簡単なスナップショットを示しています。同様の要素を 1 つのグループにグループ化する awk スクリプトを探しています。たとえば。下の表を見ると:
- 数字 (1、2、3、4、6) はすべて 1 つのグループに属する必要があります。したがって、row1 row2 row4 row8 はグループ "1" になります。
- 数字の 9 はユニークで、共通の要素はありません。したがって、グループ2などの別のグループに単独で存在します
- 同様に、番号 5、7 はグループ 3 などの 1 つのグループに属します...
ファイル:
heading1 heading2 numberlist group
name1 text 1,2,3 1
name2 text 2 1
name3 text 9 2
name4 text 1,4 1
name5 text 5,7 3
name6 text 7 3
name7 text 8 4
name8 text 6,2 1
私に似たクエリを検索していて、このリンクを見つけました。共通要素によるリストのグループ化。しかし、解決策は C++ であり、私の主な要件である awk ではありません。
ちなみに、クエリに多少関連するこの awk ソリューションも見つかりましたが、コンマ区切りの値の処理がありませんでした。 配列を使用した awk スクリプトのグループ化
Numberlist、つまり $3 は、グループ化の唯一の考慮事項です。