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 

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

  • perl: Заменить строку в файле двойными кавычками
  • Убедитесь, что / etc / export содержит правило, используя bash
  • вставить новую строку, когда отрицательный + положительный шаблон найден с помощью sed
  • Использование sed для удаления разделителей цифр, заключенных в кавычки и кавычки из CSV?
  • Получение сообщения «Отказано в разрешении» при проверке регулярного выражения через сценарий оболочки
  • Команда SED не заменяет (работает регулярное выражение)
  • Диапазон поиска Vi и заменить
  • удалить завершающие нули в awk не работает. ошибка синтаксиса
  • 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 - лучшая ОС в мире.