csv 파일을 바꿀 수 있는 명령줄 유틸리티가 있나요?

csv 파일을 바꿀 수 있는 명령줄 유틸리티가 있나요?

이와 같은 파일이 주어지면

First,Last,Age
Cory,Klein,27
John Jacob,Smith,30

출력이 다음과 같이 표시되도록 내용을 바꿀 수 있는 명령줄 유틸리티가 있습니까?

First,Cory,John Jacob
Last,Klein,Smith
Age,27,30

답변1

~에서https://stackoverflow.com/a/2776078:

$ apt-get install csvtool

그런 다음 변환

$ csvtool transpose input.csv > ouput.csv

아니면 파이프라인에서

$ ... | csvtool transpose - | ...

답변2

따옴표 없이 단순화된 CSV 변형을 사용하지 않는 한(필드에 쉼표가 표시되지 않도록) POSIX 도구만 사용하면 CSV 구문 분석을 쉽게 수행할 수 없습니다. 그럼에도 불구하고 awk다른 텍스트 처리 도구를 사용하여 이 작업을 수행하는 것은 쉽지 않은 것 같습니다. Perl을 다음과 같이 사용할 수 있습니다.Text::CSV, 파이썬 및csv, R 및read.csv, 루비 대.CSV, ... (Perl을 제외하고 이들 모두는 해당 언어의 표준 라이브러리의 일부입니다.)

예를 들어 Python에서는 다음과 같습니다.

import csv, sys
rows = list(csv.reader(sys.stdin))
writer = csv.writer(sys.stdout)
for col in xrange(0, len(rows[0])):
    writer.writerow([row[col] for row in rows])

답변3

ruby -rcsv -e 'puts CSV.parse(STDIN).transpose.map &:to_csv' < in.csv > out.csv

답변4

CSV 파일이 다음과 같다고 가정합니다.단순한CSV 파일, 즉 필드에 구분 기호나 줄 바꿈이 포함되어 있지 않음을 의미합니다.GNU 데이터 혼합:

datamash transpose --field-separator=',' < input.csv

관련 정보