![명령 출력에서 줄 번호를 찾는 방법이 있습니까?](https://linux55.com/image/38235/%EB%AA%85%EB%A0%B9%20%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C%20%E2%80%8B%E2%80%8B%EC%A4%84%20%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%B0%BE%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
두 서버 간의 명령 출력을 비교하려고 합니다. 와 같은 명령의 출력에서 줄 수를 찾고 싶습니다 ls -l
. 이를 수행할 수 있는 방법이 있습니까? 지금까지 나는 아무것도 찾지 못했습니다.
답변1
어떤 사람들에게는 이것이 기억하기 더 쉬울 수도 있습니다:
ls -l | grep . -c
grep과 wc는 모두 total 32044
or 또는 와 같은 보조 라인을 계산합니다 ./dirname:
. 특히 재귀적 출력의 경우 이를 방지하려면 ls -lR
다음을 시도하십시오.
find . -type f | grep . -c
첫 번째는 .
디렉터리 경로입니다. -type f
즉, find
파일만 나열됩니다. 모든 유형(디렉토리, 소켓 등 포함)이 필요한 경우 -type f
.
참고: wc -l
빈 줄("\n"만)은 계산되지만 grep . -c
계산되지는 않습니다.
답변2
다음을 사용해야 합니다 wc
.
$ wc -l .emacs.d/init.el
73 .emacs.d/init.el
에서 man wc
:
NAME
wc - print newline, word, and byte counts for each file
SYNOPSIS
wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F
....
-l, --lines
print the newline counts
wc
네 GNU coreutils
, 대부분의 시스템에서 사용할 수 있습니다 Unix-like
.
답변3
wc
명령을 명령 으로 파이프할 수 있습니다 .
ls -l | wc -l
답변4
두 서버에서 처리되는 파일 수를 비교하려면 다음과 같이 안정적으로 수행할 수 있습니다.
ls -aR1qp ./ | grep -cv '/\|^$'
.dotfiles
이는 인쇄할 수 없는 문자를 대체하기 위해 필요에 따라 쉘 글로브를 사용하여 현재 디렉토리의 파일을 포함하여 모든 파일(디렉토리 아님)을 한 줄에 하나씩 나열합니다 . grep
상위 디렉터리 목록이나 ..
빈 */
줄을 필터링하여 파일당 한 줄만 있어야 하며 grep
총 개수를 반환합니다. 하위 디렉터리도 포함하려면 다음을 수행하세요.
ls -aR1qp ./ | grep -cv '^\.\{1,2\}/\|^$'
또는...
ls -AR1q ./ | grep -cv '/\|^$'
-A
최신 버전의 옵션은 POSIX입니다 .ls