(Решения здесь предполагают GNU grep
при сборке с поддержкой PCRE (, как это обычно бывает на cygwin )).
Первая половина ваших требований будет означать.
grep -Pwo '(abc|acb|bac|bca|cab|cba)\w*(?1)\w*'
Или, возможно,:
grep -Pwo '(abc|acb|bac|bca|cab|cba)\w*\1\w*'
Для второй половины, которая кажется противоречащей первой половине:
grep -Pwo '(abc|acb|bac|bca|cab|cba)(?!\1)(?1)'
Обнаружит, что слова(слово определяются как последовательность из [a-zA-Z0-9_]
символов в данном случае ), которые начинаются с последовательности из 3 символов, состоящей из a
, b
. ] иc
(одна из каждой )следует, но другая из таких последовательностей((?1)
ссылается на то же регулярное выражение, что и в первой группе (...)
)при условии, что она не совпадает с первой(\1
ссылается к строке, которая была сопоставлена первой (...)
группой захвата, а (?!...)
является отрицательным опережающим просмотром оператором ).
$ echo abcbca abcbcax abcabc aaabbb xcabacb abcacb-blah |
grep -Pwo '(abc|acb|bac|bca|cab|cba)(?!\1)(?1)'
abcbca
abcacb
Вы хотите разрешить -переименовывать, а не устанавливать -заголовки?https://man.openbsd.org/tmux.1#set-titleshttps://man.openbsd.org/tmux.1#allow-rename