나는큰CSV 파일.
비슷한 명령을 사용하여 내 파일을 보고 싶습니다 less
. 이 명령은 일부를 표시하기 위해 전체 파일을 한 번에 읽을 필요가 없습니다.
내 파일을 쉼표로 정렬된 열에 표시하는 명령이 있습니까?
답변1
이것이 당신에게 충분한지 확실하지 않지만 프로그램을 활용 하고 다음을 사용하여 column
파일의 선택된 부분을 읽을 수 있습니다.head
tail
head -n 300 myfile.csv | tail -n 100 | column -ts ',' | less
head -n-300 myfile.csv | head -n 100 | column -ts ',' | less
파일의 다른 부분을 한 번에 보기 위해 일부 스크립트로 래핑할 수 있습니다(아마도 less
그렇게 많지는 않을 것입니다). 그 외에도 작업을 수행하기 위해 GNU 도구만 사용하는 데에는 문제가 있을 것 같습니다.
답변2
less
그러나 열로 정렬된 CSV 데이터를 보려면 다음 명령을 통해 현재 페이지를 파이프 하십시오 column -ts ,
.
| <m> 쉘 명령 <m>은 마크업 문자를 나타냅니다. 입력의 일부를 파이프로 연결 파일을 주어진 쉘 명령에 추가합니다. 파일의 일부 파이프는 현재 화면의 첫 번째 줄이며 문자는 위치를 표시합니다. ^ 또는 $로 표시할 수도 있습니다. 파일의 시작 또는 끝을 각각 찾으십시오. 의 경우. 아니면 새로운 - 좋습니다. 현재 화면이 파이프되었습니다. m 뒤에 소문자가 오면 현재 위치를 표시합니다. 그 편지와 함께.
그래서 |.column -ts ,
사용less
답변3
나는 좋은 경험을 했다tabview
, 항상 대용량 파일을 잘 처리하는 것은 아닙니다. 그래도 조합은 head
꽤 괜찮네요.
답변4
이것은 실제로 문제가 되지 않지만 어쨌든 less
csv 파일을 보는 것보다 다른 것을 사용하는 것이 좋습니다. 이것은 실제로 올바른 도구가 아닙니다. 이와 같은 것을 시도해 보십시오 R
. CSV 파일 보기 및 필요한 경우 처리에 대한 지원이 좋습니다. 예를 들어, csv 파일의 5개 행을 읽으려면 다음을 수행하십시오.
$ R
> read.csv("pheno.csv",nrows=5)
faid expid pid mid sex pheno
1 1420 NA12003 0 0 1 0
2 1420 NA12004 0 0 2 0
3 1420 NA10838 9 10 1 0
4 1420 NA12005 0 0 1 0
5 1420 NA12006 0 0 2 0
바라보다
> help(read.csv)
도움을 요청. 당신은 또한 볼 수 있습니다
> help(write.csv)
파일 쓰기 등에 사용됩니다.
편집: 길이가 934991줄인 1.1G csv 파일이 있습니다.
$ time Rscript -e 'read.csv("GenomeWideSNP_6.na29.annot.csv", skip=500000, nrows=5, header=FALSE)'
그러면 500,000개의 행을 건너뛰고 5개의 행을 읽습니다. R은 이 값을 반환하는 데 1분이 걸리며 최대 사용량이 620M(!)인 경우 건너뛴 줄을 메모리로 읽는 것처럼 보이지만 이는 의미가 없습니다.
결과: 저는 실제로 R의 팬은 아니지만 중소 규모의 데이터 세트를 처리할 때, 특히 통계 분석을 수행하려는 경우 R보다 더 나쁠 수 있습니다. 대안은 Python과 일부 csv 처리 라이브러리입니다.