===== 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.