Какая команда используется для определения только количества совпадений всех строк в файлах в каталоге /etc
которые содержат слово "HOST"?
Я должен перечислить только файлы с совпадениями и подавить любые сообщения об ошибках.
Какая команда используется для определения только количества совпадений всех строк в файлах в каталоге /etc
которые содержат слово "HOST"?
Я должен перечислить только файлы с совпадениями и подавить любые сообщения об ошибках.
Чтобы подсчитать совпадения, перечислите только имена файлов и количество:
grep -src HOST /etc/*
Пример вывода:
/etc/postfix/postfix-files:1
/etc/security/pam_env.conf:6
/etc/X11/app-defaults/Ddd.3.3.11:1
/etc/X11/app-defaults/Ddd:1
/etc/zsh/zshrc:0
/etc/zsh/zshenv:0
Опция -c
подавляет нормальный вывод и печатает счетчик совпадений для каждого файла.
Если вы хотите подавить файлы с нулевым счетом:
grep -src HOST /etc/* | grep -v ':0$'
Чтобы напечатать номер строки (-n
) и имя файла (-H
) для каждой подходящей строки для любого количества входных файлов:
grep -srnH HOST /etc/*
Пример вывода:
/etc/lynx-cur/lynx.cfg:254:.h2 LYNX_HOST_NAME
/etc/lynx-cur/lynx.cfg:255:# If LYNX_HOST_NAME is defined here or in userdefs.h, it will be
/etc/X11/app-defaults/Ddd.3.3.11:8005: DDD 3.3.11 (@THEHOST@) gets @CAUSE@\n\
/etc/X11/app-defaults/Ddd:8010: DDD 3.3.12 (@THEHOST@) gets @CAUSE@\n\
Опция -r
заставляет grep
рекурсивно искать файлы в каждом подкаталоге на всех уровнях в указанном каталоге. Опция -s
подавляет сообщения об ошибках.
Чтобы подавить совпадения двоичных файлов, используйте параметр -I
.
Смотрите man grep
для получения дополнительной информации.
Это не одна команда, но это одна строка
что-то вроде
grep -r ',,HOST' . | wc -l
grep -c HOST *
... должен сделать это.
Вопрос сформулирован немного странно. Сначала он запрашивает количество строк, которые совпадают во всех файлах, затем он хочет, чтобы вы перечислили имена файлов.
Для подсчета совпадающих строк во всех файлах:
grep -R "HOST" /etc 2> /dev/null | wc -l
Чтобы перечислить имена файлов:
grep -Rl "HOST" /etc 2> /dev/null