===== Remove lines with duplicate letters =====
==== Task ====
Find five letter words that are made up of letters {h, i, k, e, r, s} where each letter appears only once.
==== Issue ====
grep -Ei "^[hikers]{5}$" /usr/share/dict/american-english
gives
Essie
Hesse
Irish
Kerri
Reese
Sheri
...
where some letters are duplicated in some of the words. For example, the letter 'i' appears twice in the word 'Irish'. We need to filter out all such words.
==== Solution ====
Pipe the output to ''grep -viE '(.).*\1' ''. For example
% grep -Ei "^[hikers]{5}$" /usr/share/dict/american-english | grep -viE "(.).*\1"
Sheri
Shrek
heirs
hiker
hikes
hires
sheik
shire
shirk
skier
==== Ref ====
* https://unix.stackexchange.com/questions/352927/delete-all-lines-that-contain-duplicate-letters -> comment by Stéphane Chazelas
* I got the idea from here.
* (Mastering Regular Expressions, Jeffrey E.F. Friedl, 2006) book -> Chapter 1 "Introduction to Regular Expressions" -> section "Parentheses and Backreferences" -> pages 20 through 22 go over this concept.