One of the user issues, I came across, is to retain a single sequence for each group. User didn't mention the length or other criteria. However, headers have lot more information than group it self. 
Example fasta file is below:
======================================================================
>group_1_samplenameA
CGCTTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGACG
AAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAA
>group_2_samplenameB
AAATTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGACG
AAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAG
>group_3_samplenameC
CGCTTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGACG
AAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAA
>group_3_samplenameD
CGCTTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGACGA
=======================================================================
In the above example, fasta headers have group information plus other information. User wants to retain one sequence per group. Let us do that with seqkit.
======================================================================
$ seqkit --quiet --id-regexp '(^\w+_[0-9])' rmdup test.fa

>group_1_samplenameA
CGCTTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGAC
GAAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAA
>group_2_samplenameB
AAATTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGAC
GAAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAG
>group_3_samplenameC
CGCTTCAACGGAATGGATCTACGTTACAGCCTGCATAAAGAAAACGGAGTTGCCGAGGAC
GAAAGCGACTTTAGGTTCTGTCCGTTGTCTTTGGCGGAAA
=======================================================================
Explanation:
  1. --quiet - do not print standard error/output on the screen
  2. --id-regexp - regex to be used in matching headers. By default, rmdup matches on headers in seqkit
  3. ^\w+_[0-9]- Regex for starting with a word followed by _, followed by a single digit. This matches group_1, group_2, group_3 etc