CSV 파일에서 줄 수를 가져 오는 유닉스 명령


22

들어오는 CSV 파일에서 줄 수를 가져와야합니다.

카운트를 얻기 위해 다음 명령을 사용했습니다.

wc -l filename.csv

1 레코드와 함께 제공되는 파일을 고려 \*하고 시작할 때 일부 파일을 가져오고 위의 명령을 실행하면 해당 파일에 대해 count를 반환합니다 0.

\*파일의 시작 부분에 카운트 된 행으로 등록되지 않은 이유는 무엇 입니까?


"cat filename.csv | wc -l"시도
chaput

4
"cat filename.csv | wc -l"은 논리적으로 "wc -l filename.csv"와 동일한 기능을 수행하지만 효율성이 떨어지고 우아합니다.
Alex

Devoloper250, 마지막 단락을 좀 더 설명해 주시겠습니까? 예도 도움이 될 수 있습니다.
Alex

예 : 줄의 시작 부분에 * (별표)가있는 1 레코드의 csv 파일을 얻습니다. wc -l fn.csv iam을 0으로 계산하지만 이상적으로는 1이어야합니다. * (별표)는 다른 와일드 카드와 같이 할 특정 일이 있습니까 ??
Devoloper250

"cat filename.csv"를 실행할 때 결과는 무엇입니까? 또한 어떤 배포판을 사용하고 있습니까?
JNevill

답변:


9

종료되지 않은 행도 계산하는 방법은 다음과 같습니다.

cat filename.csv | xargs -l echo | wc -l

이것은 비어 있지 않은 모든 줄을 계산하지만 빈 줄은 건너 뜁니다.

다소 효과적이지 않지만, 아마도 직업적인 사용에는 문제가되지 않습니다.

또 다른 가능성은 종료되지 않은 마지막 행을 포함하여 모든 행을 계산합니다.

awk '{n+=1} END {print n}' filename.csv

RHEL 6.2에서 테스트되었습니다. YMMV.


awk명령은 OS X에서 작동
Micah Stubbs

1

wc는 한 줄만 있고 후행 줄 바꿈이없는 파일에 대해 0을보고합니다. 어쩌면 당신의 one-record csv 파일이 이와 같을까요? 다음과 같이 hexdump를 사용하여 줄 바꿈 줄을 찾을 수 있습니다.

hexdump -C fn.csv

끝에 ASCII 코드 0a를 찾으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.