저는 Windows 7을 사용하고 있으며 GnuWin32를 사용하고 있습니다. LF( \n
) 줄 끝이 있는 몇 기가바이트 크기의 텍스트 파일이 있습니다 . 나는 그것이 얼마나 많은 라인을 가지고 있는지 알고 싶습니다. 또는 대안으로 얼마나 많은 LF가 있는지, 즉 하나 더 적지만 상관하지 않습니다. 답변을 얻는 가장 빠르고 저렴한 방법은 무엇입니까?
몇 가지 가능성(일부 누락되었다고 확신하지만):
wc -l foo
grep -c $ foo
( 를 사용하면-c
일치하는 줄의 개수만 인쇄합니다)grep -c ^^ foo
(첫 번째 캐럿이 두 번째 캐럿을 이스케이프합니다)sed -n $= foo
(-n
라인 인쇄 방지,$
마지막 라인으로 제한,=
라인 번호 인쇄)
(이것들은 GnuWin32 유틸리티입니다. Windows 고유의 방식은 모르겠습니다.)
답변1
Windows 명령줄 솔루션
type foo | find "" /v /c
Powershell 솔루션
(get-content foo | measure-object -line).lines
(dir foo | select-string .).count
(type foo).count
(gc foo | measure-object | select count).count
펄 솔루션
perl -pe '}{$_=$.' foo
이상한 솔루션
awk 'END { print NR }' foo
추가 읽기
- Windows CMD 명령줄의 AZ 인덱스- Windows cmd 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
- 찾다- 파일에서 텍스트 문자열을 검색하고 발견된 모든 줄을 표시합니다.
- Windows PowerShell 명령의 AZ 인덱스- PowerShell과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
답변2
나에게 가장 빠른 것은 명령줄입니다.find /v /c "" foo.txt
아직 적절한 벤치마크를 수행하지 않았지만 2GB RAM 서버에서 10GB 파일을 시도했지만 type
완료 (get-content foo | measure-object -line)
하는 데 너무 오랜 시간이 걸렸습니다. 그러나 충분히 빨리 반환됨을 찾으십시오.