У меня есть много данных в каталоге, я хочу найти любые примеры двойных слов, которые не являются числами. Я начал с этим из here:Grep regex, чтобы найти повторяющиеся слова, исключая список ключевых слов
\b(\w+) \1\b
И расширил его, чтобы включить то, что я не хочу в результатах:
(?!(?:one|two|three|four|five|six|seven|eight|nine|oh|zero))\b(\w+) \1\b
Это работает, когда я положил его в regex101 как выражение питона (с это все, что я знаю), но не тогда, когда я использую его в команде grep. Я понял, что я не могу использовать, так что я попробовал это после прочтения this question:
grep -Proh "\b(\w+) \1\b" | grep -Prohv "?(?:one|two|three|four|five|six|seven|eight|nine|oh|zero)"
Который возвращает «Grep: ничего, чтобы повторить». Я не уверен, использую ли я правильные параметры grep, или что не так с регулярным выражением, которое я использую.
Образец данных для соответствия:
сегодня для оценки возможностей. сомневаюсь, что это происходит
Примеры игнорируемых данных:
удельный вес, одна точка ноль ноль семь
использование с -Р '\ б ((?: восемь | е (?!? Ив | наш) | девять | о (: ч | п) | s (?: Даже | ий) | t (?: hree | wo) | zero)) (\ w +) \ 1 \ b' – sln