매뉴얼 페이지는 다음과 같이 grep
말합니다.
-c
,--count
: 일반 출력을 억제합니다. 대신 각 입력 파일에 대해 일치하는 줄 수를 인쇄합니다.
주어진:
# grep -R -c sleeping /proc/*/status
나는 개수가 아닌 목록을 얻습니다.
# grep -R sleeping /proc/*/status | wc -l
무슨 일이야 grep -c
? 카운트를 얻지 않고 wc -l
대신 사용해야 하려면 (위 명령에서) 무엇을 하고 있습니까?
답변1
grep -c
각 입력 파일에 대해 개별적으로 일치하는 행의 수를 제공합니다(매뉴얼에서 인용한 내용이 실제로 그렇습니다).
$ grep -c user chmod.1 chown.1
chmod.1:20
chown.1:5
따라서 chmod.1
20개의 일치 항목이 있고 chown.1
5개의 일치 항목이 있습니다.
파일 이름 목록은 여기에서 일반적인 grep과 유사하게 작동합니다. 즉, 입력 파일이 두 개 이상 있으면 파일 이름이 나열되지만 하나만 있는 경우에는 나열되지 않습니다. 최소한 GNU grep에서는 -H
및 -h
플래그를 사용하여 이를 수정할 수 있습니다.
그래서,
$ grep -c user chmod.1
20
$ grep -cH user chmod.1
chmod.1:20
답변2
총 개수의 경우 파일당 개수를 보고하지 않도록 cat
그다지 쓸모가 없는 사용법을 사용하십시오.grep
-bash-4.2$ cat /proc/*/status | grep -c sleeping
171
-bash-4.2$ grep sleeping /proc/*/status | wc -l
171
-bash-4.2$