на поиск совпадения трем словам из шаблона? (например Jon, Bob,Dad3)
соответственно строка Dad3,Bob - удовлетворит, а скажем Dad3, Flop, Bass, Bob нет
нипонятно чот написал ТЗ - три слова по которым выполняется поиск - фиксированные? (одни и те же) или их набор разный?
Да, фиксированный
а их порядок произвольный может быть в строке или подряд где-то по ходу строчки?
Порядок произвольный и слова не повторяются
Там даже не текст, а перечесление
Я понял, как сделать простое совпадение, тут все довольно понятно - | grep -iE '(John| Bob|Dad3)' А как сделать, что бы ОБЯЗАТЕЛЬНО хотя бы одно было иначе неуд, хз, голову ломаю третий час
ну раз произвольный - самое тупое это перебрать все варианты перестановок этих слов.: /(.*word1.*word2.*word3)|(.*word1.*word3.*word2)|и т.д./
ну так если необходимо и достаточно одного совпадания - то у тебя все правильно написано. Если не совпадет - выйдет с ошибкой
Не не, видимо я не правильно сформулировал изначально. В общем, выражение должно совпадать когда строка содержит слова ТОЛЬКО из указанных (даже если в строке только 1 слово из них) и не совпадёт, когда есть хоть одно любое слово не указанное в этих трех, есть ли там сами слова из списка уже не важно.
То есть имеется список из 3 слов. И строка должна содержать только слова из этого списка. Слова из списка в строке должны быть уникальными (нигде по строке не повторяться). ?
Три грепа в пайп?
А какая задача решается?
Почему 3? Там же через |
нифига не понятно но возможно поможет grep -e 'string1' -e 'string2' -e 'string3'
ну суть в том что есть файл с паттернами поиска (вот эти три слова) и вывод git diff содержащий список файлов. Если в выводе есть что-то что не совпадает с паттернами, то и т.д... Ключ -f в grep как раз и ссылается на файл паттернов (который в данном случае "-", т.е. stdin)
Обсуждают сегодня