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

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

мое решение:

  • Почему две почти idetic команды grep возвращают разные выходные данные: w / o и с именем файла
  • Замена нескольких звездочек в vi
  • Замените что-либо между круглыми скобками, даже если они охватывают несколько строк
  • Как использовать sed для создания маркированного списка?
  • Обратное обращение с sed
  • Замените регулярное выражение на строку, содержащую совпадение
  • egrep '(.)([^/1])([^/1/2])([^/1/2/3])([^/1/2/3/4])' greek.txt 

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

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

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

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

     alpha gamma delta epsilon theta kappa lambda omicron sigma upsilon omega 

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

  • Проблема с sed-подстановкой в ​​многословном регулярном выражении
  • Сопоставьте текущую строку до строки, которая не соответствует шаблону
  • Почему мне не нужно избегать класса символов в sed, но мне нужно избегать остальных?
  • Регулярное совпадение в ksh
  • Как я могу grep две вещи, где есть опция -w?
  • Выделение ключевых слов с помощью стандартных утилит командной строки?
  • 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 - лучшая ОС в мире.