단어가 포함된 모든 파일의 일치 개수 표시

단어가 포함된 모든 파일의 일치 개수 표시

/etc"HOST"라는 단어가 포함된 디렉토리 아래의 파일 내 모든 행의 일치 개수만 식별하는 데 사용되는 단일 명령은 무엇입니까 ?

일치하는 파일만 나열하고 오류 메시지는 표시하지 않아야 합니다.

답변1

일치 항목을 계산하려면 파일 이름과 개수만 나열하세요.

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옵션은 일반 출력을 억제하고 각 파일의 일치 개수를 인쇄합니다.

개수가 0인 파일을 표시하지 않으려면 다음을 수행하세요.

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자세한 내용은.

답변2

한 명령이 아니라 한 줄입니다.

같은 것

 grep -r ',,HOST' . | wc -l

답변3

질문이 조금 이상하게 표현되었습니다. 먼저 모든 파일에서 일치하는 줄의 양을 요청한 다음 파일 이름을 나열하기를 원합니다.

모든 파일에서 일치하는 줄 수를 계산하려면 다음을 수행하세요.

grep -R "HOST" /etc 2> /dev/null | 화장실 -l

파일 이름을 나열하려면 다음을 수행하십시오.

grep -Rl "HOST" /etc 2> /dev/null

답변4

grep -c HOST *

… 그렇게 해야 합니다.

관련 정보