etc./StackOverFlow

문서의 줄 수를 계산하는 방법은 무엇입니까?

청렴결백한 만능 재주꾼 2023. 4. 30. 00:07
반응형

질문자 :Alucard


이런 줄이 있는데 실제로 몇 줄인지 알고 싶습니다...

 09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00 09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00 09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00 09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00 09:16:43 AM all 0.00 0.00 1.00 0.00 1.00 0.00 0.00 0.00 98.00 09:16:44 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:16:45 AM all 2.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 92.00

Linux 명령을 사용하여 모두 계산하는 방법이 있습니까?



wc 사용:

 wc -l <filename>

<filename> 의 줄 수를 출력합니다:

 $ wc -l /dir/file.txt 3272485 /dir/file.txt

또는 결과에서 <filename> 을 생략 wc -l < <filename> .

 $ wc -l < /dir/file.txt 3272485

wc 로 파이프할 수도 있습니다.

 $ cat /dir/file.txt | wc -l 3272485 $ curl yahoo.com --silent | wc -l 63

user85509

모든 라인을 계산하려면 다음을 사용하십시오.

 $ wc -l file

패턴이 있는 줄만 필터링하고 계산하려면 다음을 수행합니다.

 $ grep -w "pattern" -c file

또는 -v를 사용하여 일치를 반전시킵니다.

 $ grep -w "pattern" -c -v file

-e,-i 및 -x 인수를 살펴보려면 grep 매뉴얼 페이지를 참조하십시오.


Lauro Oliveira

wc -l <file.txt>

또는

 command | wc -l

John Kugelman

많은 방법이 있습니다. wc 사용하는 것은 하나입니다.

wc -l file

기타 포함

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

 grep -c ".*" file

ghostdog74

wc 도구 -l 옵션을 추가하여 파일의 줄 수를 계산하는 데 사용할 수도 있습니다.

wc -l foo 행 수 계산합니다 foo . 다음과 같이 프로그램의 출력을 파이프할 수도 있습니다. ls -l | wc -l , 현재 디렉토리에 얼마나 많은 파일이 있는지 알려줍니다(하나 더하기).


built1n

디렉토리에 있는 모든 파일의 총 줄을 확인하려면 find 및 wc를 사용할 수 있습니다.

 find . -type f -exec wc -l {} +

storen

wc 사용:

 wc -l <filename>

Vivin Paliath

원하는 것이 줄 수뿐이라면(줄 수와 어리석은 파일 이름이 반환되지 않음):

 wc -l < /filepath/filename.ext

이전에 언급했듯이 이것들도 작동합니다(그러나 다른 이유로 열등합니다).

 awk 'END{print NR}' file # not on all unixes sed -n '$=' file # (GNU sed) also not on all unixes grep -c ".*" file # overkill and probably also slower

ggb667

wc -l 은 행을 계산하지 않습니다.

예, 이 답변은 파티에 다소 늦을 수 있지만 아직 답변에서 더 강력한 솔루션을 문서화한 사람을 찾지 못했습니다.

대중적인 믿음과 달리 POSIX는 파일이 개행 문자로 끝날 필요가 전혀 없습니다. 예, POSIX 3.206 라인 의 정의는 다음과 같습니다.

0개 이상의 비 <newline> 문자와 종료 문자의 시퀀스입니다.

그러나 많은 사람들이 알지 못하는 것은 POSIX도 POSIX 3.195 Incomplete Line 을 다음과 같이 정의한다는 것입니다.

파일 끝에 있는 하나 이상의 비 <newline> 문자 시퀀스입니다.

따라서 후행 LF 가 없는 파일은 POSIX와 완벽하게 호환됩니다.

두 EOF 유형을 모두 지원하지 않도록 선택하면 프로그램이 POSIX와 호환되지 않습니다.

예를 들어 다음 파일을 살펴보겠습니다.

 1 This is the first line. 2 This is the second line.

EOF에 관계없이 두 줄이 있다는 데 동의할 것이라고 확신합니다. 종료된 행의 수가 아니라 시작된 행의 수를 보면 알 수 있습니다. 즉, POSIX에 따라 이 두 파일은 모두 같은 양의 행을 갖습니다.

 1 This is the first line.\n 2 This is the second line.\n
 1 This is the first line.\n 2 This is the second line.

wc 개행을 계산하는 것에 대해 비교적 명확 0x0a 문자일 뿐입니다.

 NAME wc - print newline, word, and byte counts for each file

따라서 wc 는 "라인"이라고 부를 수 있는 것을 계산하려고 시도조차 하지 않습니다. wc 를 사용하여 줄을 계산하면 입력 파일의 EOF에 따라 잘못된 계산이 발생할 수 있습니다.

POSIX 호환 솔루션

위의 예에서와 같이 grep 을 사용하여 행 수를 계산할 수 있습니다. 이 솔루션은 더 강력하고 정확하며 파일에 있는 행의 모든 다양한 특성을 지원합니다.

 $ grep -c ^ FILE

Chiru

다음과 같이 nl 사용하십시오.

 nl filename

man nl :

행 번호가 추가된 각 FILE을 표준 출력에 씁니다. FILE이 없거나 FILE이 -이면 표준 입력을 읽습니다.


decimal

나는 이것을 사용하고 있습니다 :

 cat myfile.txt | wc -l

awk 를 사용하여 수정할 필요가 없기 때문에 허용되는 답변보다 선호합니다. 수락된 답변:

wc -l myfile.txt

그러나 가장 좋은 것은 GGB667의 답변이라고 생각합니다.

wc -l < myfile.txt

아마 지금부터 사용하게 될 것 같습니다. 제 길보다 약간 짧습니다. 누군가가 그것을 선호하는 경우를 대비하여 나는 그것을하는 오래된 방법을 내립니다. 출력은 이 두 가지 방법과 동일합니다.


Buttle Butkus

위의 방법이 선호되지만 "cat" 명령도 도움이 될 수 있습니다.

 cat -n <filename>

파일의 전체 내용을 줄 번호로 표시합니다.


Yogesh

여러 파일 줄을 계산하는 방법을 찾는 동안 이 질문을 보았으므로 .txt 파일의 여러 파일 줄을 계산하려면 이렇게 하면 됩니다.

 cat *.txt | wc -l

하나의 .txt 파일에서도 실행됩니다 ;)


talsibony

cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+' : 숫자 반환하려면 .

AechoLiu

wc -l file.txt | cut -f3 -d" "

줄 수만 반환


Umur Kontacı

다음과 같이 wc -l 리디렉션/파이핑하면 충분합니다.

 cat /etc/fstab | wc -l

그러면 아니오를 제공합니다. 라인의 만.


tk3000

또는 파일 이름 패턴(예: 파일 이름에 타임스탬프가 있는 로그 파일)으로 하위 디렉터리의 모든 줄을 계산합니다.

 wc -l ./**/*_SuccessLog.csv

jwebuser

다음 명령을 사용하여 행 수를 계산하고 결과를 변수에 저장합니다.

count=$(wc -l < file.txt) echo "Number of lines: $count"


Konstantin F

나는 이것이 오래 되었다는 것을 알고 있지만 여전히 : 필터링 된 줄 계산

내 파일은 다음과 같습니다.

 Number of files sent Company 1 file: foo.pdf OK Company 1 file: foo.csv OK Company 1 file: foo.msg OK Company 2 file: foo.pdf OK Company 2 file: foo.csv OK Company 2 file: foo.msg Error Company 3 file: foo.pdf OK Company 3 file: foo.csv OK Company 3 file: foo.msg Error Company 4 file: foo.pdf OK Company 4 file: foo.csv OK Company 4 file: foo.msg Error

몇 개의 파일이 정상적으로 전송되었는지 알고 싶다면:

 grep "OK" <filename> | wc -l

또는

 grep -c "OK" filename

Diego Fernando Villarroel Diaz

wc -l <filename>

이렇게 하면 출력에 줄 수와 파일 이름이 표시됩니다.

예.

wc -l 24-11-2019-04-33-01-url_creator.log

산출

63 24-11-2019-04-33-01-url_creator.log

사용하다

wc -l <filename>|cut -d\ -f 1

출력에서 줄 수만 가져옵니다.

예.

wc -l 24-11-2019-04-33-01-url_creator.log|cut -d\ -f 1

산출

63


Harsh Sarohi

이 드롭인 휴대용 쉘 기능 [ℹ] 은 매력처럼 작동합니다. 다음 스니펫을 .bashrc 파일(또는 쉘 환경에 해당하는 파일)에 추가하기만 하면 됩니다.

 # --------------------------------------------- # Count lines in a file # # @1 = path to file # # EXAMPLE USAGE: `count_file_lines $HISTFILE` # --------------------------------------------- count_file_lines() { local subj=$(wc -l $1) subj="${subj//$1/}" echo ${subj//[[:space:]]} }

이것은 bashzsh 외에도 모든 POSIX 호환 셸 과 완전히 호환되어야 합니다.


blizzrdof77

다른 사람들이 말했듯이 wc -l 이 최고의 솔루션이지만 향후 참조를 위해 Perl을 사용할 수 있습니다.

 perl -lne 'END { print $. }'

$. 줄 번호를 포함하고 END 블록은 스크립트 끝에서 실행됩니다.


Majid Azimi

나는 이것을하기 위해 프로그램을 만들었습니다 ( node )

 npm install gimme-lines gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html

https://github.com/danschumann/gimme-lines/tree/master


Funkodebat

화장실 -l 파일 이름

예: wc -l file.txt

그것은 당신에게 그 파일의 총 줄 수를 줄 것입니다

마지막 줄을 얻으려면 tail -1 file_name을 사용하십시오.


Vikas Sharma

파일 이름에서 줄 수를 얻기 위해 wc -l을 시도했습니다.

예를 들어 더 많은 필터링을 수행하려면 파일에서 주석 처리된 줄 수를 계산하려면 grep '#' Filename.txt | 화장실 -l

 echo "No of files in the file $FILENAME" wc -l < $FILENAME echo total number of commented lines echo $FILENAME grep '#' $FILENAME | wc -l

Sudeep Krishnan M

macOS와 같은 일종의 BSD 기반 시스템을 사용하는 경우 gnu 버전의 wc를 권장합니다. BSD wc가 하는 것처럼 특정 바이너리 파일에서 트립되지 않습니다. 적어도 여전히 어느 정도 사용할 수 있는 성능입니다. 반면 BSD 테일은 느리다.............

AWK의 경우, 사소한 주의 사항만 있습니다. 기본 가정에서 작동하기 때문에 \n 의미합니다. 파일에 후행 줄 바꿈 구분 기호가 없으면 AWK는 BSD 또는 GNU 화장실 END { } 섹션 FNR==1 에서 측정하는지에 따라 echo -n 과 같이 줄 바꿈이 전혀 없는 항목을 파이핑하는 경우 NR이 다릅니다.


RARE Kpop Manifesto

Awk는 생명(및 회선도)을 구합니다.

 awk '{c++};END{print c}' < file

빈 줄을 세지 않도록 하려면 다음을 수행할 수 있습니다.

 awk '{/^./ && c++};END{print c}' < file

smac89

출처 : http:www.stackoverflow.com/questions/3137094/how-to-count-lines-in-a-document

반응형