[bash] 터미널 출력의 라인 수

SO에서 이것을 찾을 수 없습니다. 터미널에서 다음 명령을 실행했습니다.

>> grep -Rl "curl" ./

키워드 컬이 발생하는 파일 목록이 표시됩니다. 파일 수를 세고 싶습니다. 내가 생각할 수있는 첫 번째 방법은 터미널에 나온 출력의 줄 수를 세는 것입니다. 어떻게해야합니까?



답변

( line count ) 스위치 를 wc사용하여 결과를 파이프하십시오 .-l

grep -Rl "curl" ./ | wc -l


답변

EaterOfCode의 의견을 여기에 답으로 넣으십시오.

grep 자체에도 카운트를 반환하는 -c 플래그가 있습니다.

따라서 명령과 출력은 다음과 같습니다.

$ grep -Rl "curl" ./ -c
24

편집하다:

이 답변은 더 짧을 수 있으므로 허용 된 답변 (을 사용하는 것)보다 좋아 보일 수 있습니다 wc. 나는 더 이상 이것에 동의하지 않습니다. 배관을 통해 라인 수를 세는 wc -l것이 다른 프로그램과 함께 사용할 때보 다 훨씬 유용하다는 것을 기억하고 싶습니다 grep.


답변

마지막 줄이 줄 바꿈으로 끝나는 경우 ‘wc’로 파이핑하는 것이 더 나을 수 있습니다
.

예를 들면 다음과 같습니다.

$ echo "asd" | wc -l

반환 1

$ echo -n "asd" | wc -l

돌아올 것이다 0


그래서 내가 자주 사용하는 것은 grep <anything> -c

$ echo "asd" | grep "^.*$" -c
1

$ echo -n "asd" | grep "^.*$" -c
1

이것은 wc -l돌아 오는 것보다 현실에 더 가깝습니다 .


답변