grep
결과를 파일로 리디렉션한 다음 해당 내용을 화면에 표시하는 데 사용 합니다 cat
. 결과 파일에 몇 개의 결과 행이 있는지 알고 일부 카운터에 추가하고 싶습니다.
가장 좋은 접근 방식은 무엇입니까? 관련 로고 grep
또는 cat
?
답변1
grep
출력을 파일로 수집한 경우 다음 명령을 사용하여 숫자 목록을 출력할 수 있습니다.
cat -n myfile
행 수만 원하면 다음을 수행하십시오.
wc -l myfile
이렇게 할 이유가 전혀 없습니다.
cat myfile | wc -l
...반복되어야 하는 I/O를 불필요하게 수행하기 때문입니다( cat
). wc
또한 프로세스가 두 개 있는데 하나로 충분합니다.
grep
터미널에서 마지막으로 일치하는 개수를 인쇄 하려면 다음을 수행할 수 있습니다.
grep whatever myfile | tee /dev/tty | wc -l
참고: /dev/tty
제어 터미널입니다. ~에서tty(4)
매뉴얼 페이지:
파일은
/dev/tty
메이저 번호가 5, 마이너 번호가 0인 문자 파일이며, 모드는 대개 0666이고owner.group
root.tty
프로세스의 제어 터미널(있는 경우)과 동의어입니다.
답변2
플래그가 -c
작업을 수행합니다. 예를 들어:
grep -c ^ filename
반환된 행 수를 계산합니다 grep
.
에 기록됨매뉴얼 페이지:
-c, --count 일반 출력을 억제하고 대신 각 입력 파일에 대해 일치하는 줄 수를 인쇄합니다.
답변3
사용
your_command | wc -l
매뉴얼에서:
NAME
wc - print newline, word, and byte counts for each file
...
-l, --lines
print the newline counts
답변4
wc -l을 사용하여 줄 수를 얻을 수 있습니다.
예:
$ cat foobar.txt | wc -l