/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 *
… 그렇게 해야 합니다.