csv 열의 합계 값

jesse_b

각 열의 값을 합산하고 열 머리글을 바꾸는 데 필요한 상당히 큰 CSV 파일이 여러 개 있습니다.

샘플 csv :

col1,col2,col3
enabled,disabled,active
disabled,disabled,enabled
N/A,enabled,active
enabled,N/A,disabled

원하는 출력 :

col1,2 enabled,1 disabled,1 N/A
col2,1 enabled,2 disabled,1 N/A
col3,1 enabled,1 disabled,2 active

실제 csv에는 더 많은 열과 행이 있으므로 파일을 자동으로 반복 할 수있는 것이 좋습니다. 한 번에 하나의 열을 수행하는 awk 프로그램의 해킹 작업을 생각해 낼 수는 있지만 한 번에 전체 파일을 처리 할 수 ​​있고 어디서부터 시작해야할지 모르겠습니다. 출력은 내가 포함시킨 정확한 형식 일 필요는 없지만 적어도 유사합니다.

에드 모튼
$ cat tst.awk
BEGIN { FS=OFS="," }
NR==1 { numRows = split($0,keys); next }
{
    for (i=1; i<=NF; i++) {
        sum[i,$i]++
        vals[$i]
    }
}
END {
    for (rowNr=1; rowNr<=numRows; rowNr++) {
        printf "%s", keys[rowNr]
        for (val in vals) {
            printf "%s%d %s", OFS, sum[rowNr,val], val
        }
        print ""
    }
}

$ awk -f tst.awk file
col1,1 disabled,2 enabled,1 N/A,0 active
col2,2 disabled,1 enabled,1 N/A,0 active
col3,1 disabled,1 enabled,0 N/A,2 active

또는 아마도 더 유용하게 :

$ cat tst.awk
BEGIN { FS=OFS="," }
NR==1 { numRows = split($0,keys); next }
{
    for (i=1; i<=NF; i++) {
        sum[i,$i]++
        vals[$i]
    }
}
END {
    printf "%s", "key"
    for (val in vals) {
        printf "%s%s", OFS, val
    }
    print ""

    for (rowNr=1; rowNr<=numRows; rowNr++) {
        printf "%s", keys[rowNr]
        for (val in vals) {
            printf "%s%d", OFS, sum[rowNr,val]
        }
        print ""
    }
}

$ awk -f tst.awk file
key,disabled,enabled,N/A,active
col1,1,2,1,0
col2,2,1,1,0
col3,1,1,0,2

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

열 1의 값이 동일한 csv 파일의 열 2 합계

분류에서Dev

csv의 열로 그룹화하고 다른 값 (PHP)의 합계

분류에서Dev

세 열의 값을 기반으로 csv 파일의 Awk 합계 행

분류에서Dev

JSON 배열의 값 합계

분류에서Dev

배열 내의 합계 값

분류에서Dev

배열의 각 값 합계

분류에서Dev

배열 Javascript의 합계 값

분류에서Dev

배열, JavaScript의 합계 값

분류에서Dev

주어진 열 값의 합계 계산

분류에서Dev

Vlookup CSV 배열의 총 합계

분류에서Dev

.csv 파일 Java의 열에서 값 계산

분류에서Dev

배열에서 값의 합계 얻기

분류에서Dev

여러 열의 SQL Oracle 합계 값

분류에서Dev

열의 모든 이전 값 합계

분류에서Dev

PHP 배열의 공통 키 합계 값

분류에서Dev

coredata의 모든 열 값 합계

분류에서Dev

문자열의 값 합계 (componentsJoinedByString)

분류에서Dev

객체 배열의 값 합계

분류에서Dev

객체 배열의 값 합계

분류에서Dev

jtable의 열 값 합계 얻기

분류에서Dev

동일한 열 값을 기반으로 csv의 행 병합

분류에서Dev

powershell csv는 세 열의 1 값을 캡처합니다.

분류에서Dev

열 합계 및 다른 열의 다른 값 계산

분류에서Dev

R의 두 열에서 특정 값의 합계 계산

분류에서Dev

CSV 파일은 열의 json 값에서 값을 추가합니다.

분류에서Dev

다른 열의 기준별로 열의 고유 값 합계

분류에서Dev

열의 값 합계 및 R의 다른 열로 그룹화

분류에서Dev

R의 다른 열을 기반으로 한 열 값의 합계

분류에서Dev

주기 Java의 값 합계