Содержимое Grep рекурсивно, выводить только 1 уровень каталога в глубину

Скорее всего, localhostразрешается в IPv6-адрес (::1), который не фильтруется с помощьюiptables(использованияip6tables).

Вывод:

strace -e connect ssh localhost

сообщит вам, какой IP-адрес и какой протокол используются.

2
04.09.2019, 16:35
1 ответ

Используйте findдля запуска рекурсии grepв каждом подкаталоге:

echo "Matches:"
find ParentDirectory -mindepth 1 -maxdepth 1 -type d \
  -exec grep -rq pattern {} \; \
  -and -print

-qопция позволяет grepостанавливаться на первом совпадении
-and -printзаставит findпечатать каталог только тогда, когда grepчто-то найдет.


Вариант с петлейfor-:

echo "Matches:"
for d in ParentDirectory/* ; do
    [ -d "$d" ] && grep -rq pattern "$d" && echo "$d"
done

Выход для любой версии:

Matches:
ParentDirectory/Subdirectory1
ParentDirectory/Subdirectory3
2
28.04.2021, 23:29

Теги

Похожие вопросы