텍스트 파일에 몇 줄이 있는지 계산하는 방법 예 :
command file.txt
비어 있지 않은 줄 (공백과 탭을 계산하지 않는 줄) 만 계산하고 싶습니다.
\r)으로 sa 행을 계산 하거나 건너 뛰기를 원하는지 이해할 수 없습니다 . 현재는 공백이있는 모든 카운트 라인에 응답하고 빈 라인 만 건너 뜁니다.
텍스트 파일에 몇 줄이 있는지 계산하는 방법 예 :
command file.txt
비어 있지 않은 줄 (공백과 탭을 계산하지 않는 줄) 만 계산하고 싶습니다.
\r)으로 sa 행을 계산 하거나 건너 뛰기를 원하는지 이해할 수 없습니다 . 현재는 공백이있는 모든 카운트 라인에 응답하고 빈 라인 만 건너 뜁니다.
답변:
위의 대답은 당신이 사용할 수, 올바른하지만 약간 다릅니다 grep쉽게 코드 등을 위해에grep -vc '^$' file.txt
예를 들어 (A) : file.txt
$grep -vc '^$' file.txt
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$2
예를 들어 (B) : file.txt
$sed '/^$/d' file.txt | wc -l
1 First line #This is two tabs to comment.
2
4
3 Fourth line #Another two tabs to comment.
$4
결과는 4입니다! 두 개만 기대하고 싶을 때 그러나 이것은 내용과 주석 사이의 탭을 계산합니다.
grep 또는 sed에 대한 자세한 내용 검색을 기억할 때 0에서 카운트와 1에서 grep과 다른 sed로 카운트합니다.
sed옵션은 실제로 정확하지만, 그렇지 grep않다
시도 sed:
sed '/^$/d' file.txt | wc -l
공백이나 탭만 포함 된 행이 있고 카운트에서 무시하거나 무시하려는 경우 :
sed '/^[[:blank:]]*$/d' file.txt | wc -l
^\s*$탭이나 공백 만 포함하는 줄을 고려하는데도 사용 합니다.
펄은 그렇게 할 수 있습니다. 일반적으로 카운팅 라인은 다음과 같이 작동합니다.
$ perl -ne 'END{print $.}' input.txt
빈 줄을 모두 제외하려면 다음과 같이하십시오.
$ perl -ne '$c+=1 if not /^$|^\s+$/;END{print $c}' input.txt
다음과 같은 입력 파일이 있다고 가정 해 봅시다.
$ cat -n input.txt
1 Cat; Dog; Squirrel
2 ORGANISM Animalus terrus
3
4 Sequence: ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
5
총 5 줄, 2 줄의 빈 줄이 있습니다. 우리가 출력 한 명령은 다음과 같습니다.
$ perl -ne '$c+=1 if not /^$|^\s+$/;END{print $c}' input.txt
3
이것은 단일 파일에 적합합니다. 여러 파일에서 작동하게하려면 다음과 같이 할 수 있습니다.
$ perl -ne '$c+=1 if not /^$|^\s+$/;printf("%d %s\n",$c,$ARGV) and $c=0 if eof' input.txt /etc/passwd
3 input.txt
52 /etc/passwd