Regex: все греческие буквы с 5 уникальными буквами (это означает, что каждая буква появляется только один раз)

Еще один, который я не могу решить: все греческие буквы с 5 уникальными буквами (это означает, что каждая буква появляется только один раз).

мое решение:

egrep '(.)([^/1])([^/1/2])([^/1/2/3])([^/1/2/3/4])' greek.txt 

Итак, я думаю, что я говорю:

  • соответствовать любому первому персонажу

  • каждый последовательный символ не может быть ни одним из предыдущих шаблонов

Но что выходит:

 alpha gamma delta epsilon theta kappa lambda omicron sigma upsilon omega 

Альфа, гамма, у них есть символы, которые не уникальны. Любые подсказки или советы о том, что я делаю неправильно?

  • Как использовать соответствующее регулярное выражение для поиска шаблона в awk?
  • Стирание в stdin всех экземпляров регулярных выражений, определенных в файле
  • Стратегия для извлечения имени фильма из этого неравномерного набора данных?
  • Для чего используются сопоставляемые символы и классы эквивалентности?
  • Замена совпадающего текста после двух совпадающих строк
  • Можно ли сделать sed делать некоторую логику в замещающей части (группа регулярных выражений)
  • Регулярное совпадение в ksh
  • Преодоление новых строк с помощью grep -o
  • 2 Solutions collect form web for “Regex: все греческие буквы с 5 уникальными буквами (это означает, что каждая буква появляется только один раз)”

    • Используйте один grep для фильтрации всех строк длиной = = 5.
    • Используйте второй grep для фильтрации всех слов, где повторяется любой символ.

    egrep '^.{5}$' greek.txt | egrep -v '^.*(.).*\1.*$'

    Благодаря @StephaneChazelas для указания оптимизации в комментарии:

    grep -x '.\{5\}' | grep -v '\(.\).*\1'

    Я думаю, что вы на правильном пути, но ваши косые черты идут в неправильном направлении, чтобы быть обратными ссылками. Используйте \1 не /1 !

    Linux и Unix - лучшая ОС в мире.