csv 파일을 처리하는 강력한 명령줄 도구가 있습니까?

csv 파일을 처리하는 강력한 명령줄 도구가 있습니까?

저는 CSV 파일로 작업하며 때로는 명령줄에서 행이나 열의 내용을 빠르게 확인해야 할 때도 있습니다. 대부분의 경우 cut, , , 및 친구들이 작업을 수행 head하지만 tail컷은 다음과 같은 작업을 쉽게 처리할 수 없습니다.

"this, is the first entry", this is the second, 34.5

여기서 첫 번째 쉼표는 첫 번째 필드의 일부이지만 cut -d, -f1동의하지 않습니다. 솔루션을 직접 작성하기 전에 해당 작업에 이미 존재하는 좋은 도구를 아는 사람이 있는지 궁금합니다. 최소한 위의 예를 처리하고 CSV 형식의 파일에서 열을 반환할 수 있어야 합니다. 다른 바람직한 기능으로는 첫 번째 행에 제공된 이름을 기반으로 열을 선택하는 기능, 추가 인용 스타일 지원, 탭으로 구분된 파일 지원 등이 있습니다.

그러한 도구에 대해 모르지만 Bash, Perl, Python 또는 기타 일반적인 스크립팅 언어로 그러한 프로그램을 구현하기 위한 제안이 있는 경우에는 그 제안에 신경 쓰지 않을 것입니다.

답변1

파티에 조금 늦었을 수도 있지만 언급할 만한 또 다른 도구가 있습니다.csvkit.

여기에는 다음을 수행할 수 있는 많은 명령줄 도구가 있습니다.

  • CSV 파일 형식을 다시 지정합니다.
  • 다양한 형식(JSON, SQL, XLS)을 CSV로 변환하고,
  • cut및 기타 grep와 동일 sort하지만 CSV를 지원합니다.
  • 서로 다른 CSV 파일을 연결합니다.
  • CSV 파일의 데이터에 대해 일반 SQL 쿼리를 수행합니다.

답변2

파이썬을 사용할 수 있습니다csv기준 치수.

간단한 예:

import csv
reader = csv.reader(open("test.csv", "r"))
for row in reader:
    for col in row:
        print col

답변3

밀러CSV(헤더 포함)를 포함하여 이름 기반 데이터를 조작하기 위한 또 다른 훌륭한 도구입니다. 이름을 신경 쓰지 않고 CSV 파일의 첫 번째 열을 추출하려면 다음과 같이 할 수 있습니다.

printf '"first,column",second,third\n1,2,3\n' |
  mlr --csv -N cut -f 1

답변4

나는 추천하고 싶다xsv, "Rust로 작성된 빠른 CSV 명령줄 툴킷"입니다.

작성자:립그랩작가.

에 추천CSV 처리 속도를 142배 빠르게 만든 방법(레딧 주제).

관련 정보