I had a need to get words (four characters) that have a suffix from a list.
This was to help someone in the second grade with the words.
I used the unixdict.txt to get the words.
let suffixes = [ang ing ung unt ear ean eat ell end old unk]
open unixdict.txt
| lines
| where { |word| ($word | str length) == 4 }
| each { |word|
let suffix = ($suffixes | find { |s| $word | str ends-with $s });
if $suffix != null {
{ item: $word, suffix: $suffix }
} else {
null
}
}
| compact
| group-by suffix --to-table
| where { |group| ($group.items | length) >= 5 }
| sort-by suffix item
| flatten
| flatten
| select item suffix
| group-by suffix --to-table
| select suffix items.item
| rename Suffix Word- Transpose the list Horizontal
let suffixes = [ang ing ung unt ear ean eat ell end old unk]
open unixdict.txt
| lines
| where { |word| ($word | str length) == 4 }
| each { |word|
let suffix = ($suffixes | find { |s| $word | str ends-with $s });
if $suffix != null {
{ item: $word, suffix: $suffix }
} else {
null
}
}
| compact
| group-by suffix --to-table
| where { |group| ($group.items | length) >= 5 }
| sort-by suffix item
| flatten
| flatten
| select item suffix
| group-by suffix --to-table
| select suffix items.item
| rename Suffix Word
| transpose -r- Get all words that are four charactes and the suffix has at least five words
- There were about 116 suffixes.
open unixdict.txt
| lines
| where { |word| ($word | str length) == 4 }
| each { |word| { item: $word, base: ($word | str substring 1..3) } }
| group-by base --to-table
| where { |group| ($group.items | length) >= 5 }
| sort-by base item
| flatten | flatten | select item base
| group-by base --to-table
| select base items.item
| rename Suffix Word╭────┬────────┬───────────────╮
│ # │ Suffix │ Word │
├────┼────────┼───────────────┤
│ 0 │ ang │ ╭────┬──────╮ │
│ │ │ │ 0 │ bang │ │
│ │ │ │ 1 │ dang │ │
│ │ │ │ 2 │ fang │ │
│ │ │ │ 3 │ gang │ │
│ │ │ │ 4 │ hang │ │
│ │ │ │ 5 │ lang │ │
│ │ │ │ 6 │ pang │ │
│ │ │ │ 7 │ rang │ │
│ │ │ │ 8 │ sang │ │
│ │ │ │ 9 │ tang │ │
│ │ │ │ 10 │ wang │ │
│ │ │ │ 11 │ yang │ │
│ │ │ ╰────┴──────╯ │
│ 1 │ ean │ ╭───┬──────╮ │
│ │ │ │ 0 │ bean │ │
│ │ │ │ 1 │ dean │ │
│ │ │ │ 2 │ jean │ │
│ │ │ │ 3 │ lean │ │
│ │ │ │ 4 │ mean │ │
│ │ │ │ 5 │ sean │ │
│ │ │ │ 6 │ wean │ │
│ │ │ ╰───┴──────╯ │
│ 2 │ ear │ ╭────┬──────╮ │
│ │ │ │ 0 │ bear │ │
│ │ │ │ 1 │ dear │ │
│ │ │ │ 2 │ fear │ │
│ │ │ │ 3 │ gear │ │
│ │ │ │ 4 │ hear │ │
│ │ │ │ 5 │ lear │ │
│ │ │ │ 6 │ near │ │
│ │ │ │ 7 │ pear │ │
│ │ │ │ 8 │ rear │ │
│ │ │ │ 9 │ sear │ │
│ │ │ │ 10 │ tear │ │
│ │ │ │ 11 │ wear │ │
│ │ │ │ 12 │ year │ │
│ │ │ ╰────┴──────╯ │
│ 3 │ eat │ ╭───┬──────╮ │
│ │ │ │ 0 │ beat │ │
│ │ │ │ 1 │ feat │ │
│ │ │ │ 2 │ heat │ │
│ │ │ │ 3 │ meat │ │
│ │ │ │ 4 │ neat │ │
│ │ │ │ 5 │ peat │ │
│ │ │ │ 6 │ seat │ │
│ │ │ │ 7 │ teat │ │
│ │ │ ╰───┴──────╯ │
│ 4 │ ell │ ╭───┬──────╮ │
│ │ │ │ 0 │ bell │ │
│ │ │ │ 1 │ cell │ │
│ │ │ │ 2 │ dell │ │
│ │ │ │ 3 │ fell │ │
│ │ │ │ 4 │ hell │ │
│ │ │ │ 5 │ nell │ │
│ │ │ │ 6 │ sell │ │
│ │ │ │ 7 │ tell │ │
│ │ │ │ 8 │ well │ │
│ │ │ │ 9 │ yell │ │
│ │ │ ╰───┴──────╯ │
│ 5 │ end │ ╭───┬──────╮ │
│ │ │ │ 0 │ bend │ │
│ │ │ │ 1 │ fend │ │
│ │ │ │ 2 │ lend │ │
│ │ │ │ 3 │ mend │ │
│ │ │ │ 4 │ pend │ │
│ │ │ │ 5 │ rend │ │
│ │ │ │ 6 │ send │ │
│ │ │ │ 7 │ tend │ │
│ │ │ │ 8 │ vend │ │
│ │ │ ╰───┴──────╯ │
│ 6 │ ing │ ╭───┬──────╮ │
│ │ │ │ 0 │ bing │ │
│ │ │ │ 1 │ ding │ │
│ │ │ │ 2 │ king │ │
│ │ │ │ 3 │ ping │ │
│ │ │ │ 4 │ ring │ │
│ │ │ │ 5 │ sing │ │
│ │ │ │ 6 │ wing │ │
│ │ │ │ 7 │ zing │ │
│ │ │ ╰───┴──────╯ │
│ 7 │ old │ ╭───┬──────╮ │
│ │ │ │ 0 │ bold │ │
│ │ │ │ 1 │ cold │ │
│ │ │ │ 2 │ fold │ │
│ │ │ │ 3 │ gold │ │
│ │ │ │ 4 │ hold │ │
│ │ │ │ 5 │ mold │ │
│ │ │ │ 6 │ sold │ │
│ │ │ │ 7 │ told │ │
│ │ │ │ 8 │ wold │ │
│ │ │ ╰───┴──────╯ │
│ 8 │ ung │ ╭───┬──────╮ │
│ │ │ │ 0 │ dung │ │
│ │ │ │ 1 │ hung │ │
│ │ │ │ 2 │ lung │ │
│ │ │ │ 3 │ mung │ │
│ │ │ │ 4 │ rung │ │
│ │ │ │ 5 │ sung │ │
│ │ │ │ 6 │ tung │ │
│ │ │ ╰───┴──────╯ │
│ 9 │ unk │ ╭───┬──────╮ │
│ │ │ │ 0 │ bunk │ │
│ │ │ │ 1 │ dunk │ │
│ │ │ │ 2 │ funk │ │
│ │ │ │ 3 │ gunk │ │
│ │ │ │ 4 │ hunk │ │
│ │ │ │ 5 │ junk │ │
│ │ │ │ 6 │ punk │ │
│ │ │ │ 7 │ sunk │ │
│ │ │ ╰───┴──────╯ │
│ 10 │ unt │ ╭───┬──────╮ │
│ │ │ │ 0 │ aunt │ │
│ │ │ │ 1 │ bunt │ │
│ │ │ │ 2 │ hunt │ │
│ │ │ │ 3 │ punt │ │
│ │ │ │ 4 │ runt │ │
│ │ │ ╰───┴──────╯ │
├────┼────────┼───────────────┤
│ # │ Suffix │ Word │
╰────┴────────┴───────────────╯
╭─────┬─────────────────┬────────────────┬─────────────────┬────────────────┬────────────────┬────────────────┬────────────────┬────────────────┬────────────────┬────────────────┬────────────────╮
│ # │ ang │ ean │ ear │ eat │ ell │ end │ ing │ old │ ung │ unk │ unt │
├─────┼─────────────────┼────────────────┼─────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ 0 │ ╭────┬──────╮ │ ╭───┬──────╮ │ ╭────┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │ ╭───┬──────╮ │
│ │ │ 0 │ bang │ │ │ 0 │ bean │ │ │ 0 │ bear │ │ │ 0 │ beat │ │ │ 0 │ bell │ │ │ 0 │ bend │ │ │ 0 │ bing │ │ │ 0 │ bold │ │ │ 0 │ dung │ │ │ 0 │ bunk │ │ │ 0 │ aunt │ │
│ │ │ 1 │ dang │ │ │ 1 │ dean │ │ │ 1 │ dear │ │ │ 1 │ feat │ │ │ 1 │ cell │ │ │ 1 │ fend │ │ │ 1 │ ding │ │ │ 1 │ cold │ │ │ 1 │ hung │ │ │ 1 │ dunk │ │ │ 1 │ bunt │ │
│ │ │ 2 │ fang │ │ │ 2 │ jean │ │ │ 2 │ fear │ │ │ 2 │ heat │ │ │ 2 │ dell │ │ │ 2 │ lend │ │ │ 2 │ king │ │ │ 2 │ fold │ │ │ 2 │ lung │ │ │ 2 │ funk │ │ │ 2 │ hunt │ │
│ │ │ 3 │ gang │ │ │ 3 │ lean │ │ │ 3 │ gear │ │ │ 3 │ meat │ │ │ 3 │ fell │ │ │ 3 │ mend │ │ │ 3 │ ping │ │ │ 3 │ gold │ │ │ 3 │ mung │ │ │ 3 │ gunk │ │ │ 3 │ punt │ │
│ │ │ 4 │ hang │ │ │ 4 │ mean │ │ │ 4 │ hear │ │ │ 4 │ neat │ │ │ 4 │ hell │ │ │ 4 │ pend │ │ │ 4 │ ring │ │ │ 4 │ hold │ │ │ 4 │ rung │ │ │ 4 │ hunk │ │ │ 4 │ runt │ │
│ │ │ 5 │ lang │ │ │ 5 │ sean │ │ │ 5 │ lear │ │ │ 5 │ peat │ │ │ 5 │ nell │ │ │ 5 │ rend │ │ │ 5 │ sing │ │ │ 5 │ mold │ │ │ 5 │ sung │ │ │ 5 │ junk │ │ ╰───┴──────╯ │
│ │ │ 6 │ pang │ │ │ 6 │ wean │ │ │ 6 │ near │ │ │ 6 │ seat │ │ │ 6 │ sell │ │ │ 6 │ send │ │ │ 6 │ wing │ │ │ 6 │ sold │ │ │ 6 │ tung │ │ │ 6 │ punk │ │ │
│ │ │ 7 │ rang │ │ ╰───┴──────╯ │ │ 7 │ pear │ │ │ 7 │ teat │ │ │ 7 │ tell │ │ │ 7 │ tend │ │ │ 7 │ zing │ │ │ 7 │ told │ │ ╰───┴──────╯ │ │ 7 │ sunk │ │ │
│ │ │ 8 │ sang │ │ │ │ 8 │ rear │ │ ╰───┴──────╯ │ │ 8 │ well │ │ │ 8 │ vend │ │ ╰───┴──────╯ │ │ 8 │ wold │ │ │ ╰───┴──────╯ │ │
│ │ │ 9 │ tang │ │ │ │ 9 │ sear │ │ │ │ 9 │ yell │ │ ╰───┴──────╯ │ │ ╰───┴──────╯ │ │ │ │
│ │ │ 10 │ wang │ │ │ │ 10 │ tear │ │ │ ╰───┴──────╯ │ │ │ │ │ │ │
│ │ │ 11 │ yang │ │ │ │ 11 │ wear │ │ │ │ │ │ │ │ │ │
│ │ ╰────┴──────╯ │ │ │ 12 │ year │ │ │ │ │ │ │ │ │ │
│ │ │ │ ╰────┴──────╯ │ │ │ │ │ │ │ │ │
├─────┼─────────────────┼────────────────┼─────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┼────────────────┤
│ # │ ang │ ean │ ear │ eat │ ell │ end │ ing │ old │ ung │ unk │ unt │
╰─────┴─────────────────┴────────────────┴─────────────────┴────────────────┴────────────────┴────────────────┴────────────────┴────────────────┴────────────────┴────────────────┴────────────────╯