Использование рекурсивного grep и чтения:
grep --include '*.ext' -lr 'kwd1'. |
while read -r file; do grep -m1 -q 'kwd2' "$file" && grep -m1 -l 'kwd3' "$file"; done
grep --include '*.ext' -lr 'kwd1'.
-Будут найдены все файлы (рекурсивно )в текущем каталоге, которые заканчиваются на .ext
и содержатkwd1
Затем цикл while возьмет каждый файл, содержащий kwd1
, и подтвердит, что он также содержит как kwd2
, так и kwd3
Примечание. :Это приведет к разрыву имен файлов, содержащих символы новой строки.
Я думаю, что ответ лежит здесь. Yast2 сможет фильтровать журналы journald 17.6 Использование YaST для фильтрации журнала systemd