일부 계산 기능을 수행하는 터미널에 awk 스크립트가 있습니다.
awk '{ a[$2]++ }END{ for(i in a) printf "%-15s%s\n",i,a[i] }'
Data_1
추가해서 csv 파일로 출력할 예정이에요
awk '{ a[$2]++ }END{ for(i in a) printf "%-15s%s\n",i,a[i] }'
Data_1 > Count.csv
하지만 지금 내가 직면한 문제는 위의 awk 스크립트가 출력된다는 것입니다.
Gregor 4
Alexis 15
George 17
csv 파일로 내보낸 후 Excel에서 하나의 열 A에만 이름과 개수가 추가됩니다. 한 열에는 이름을 지정하고 다른 열에는 숫자를 지정하기 위해 터미널에서 csv 명령의 형식을 어떻게 지정합니까? Excel에서 나는 얻고 싶다
A B
Gregor 4
Alexis 15
George 17
답변1
.csv
with를 사용하는 경우 필드 사이에 쉼표를 추가하여 간단한 유형 형식을 갖도록 해야 합니다 printf
.
awk '{ a[$2]++ }END{ for(i in a) printf "%-15s,%s\n",i,a[i] }'
Gregor ,4
Alexis ,15
George ,17
또는 성숙한 .csv 유형
awk '{ a[$2]++ }END{ for(i in a) printf "\"%-15s\",\"%s\"\n",i,a[i] }'
"Gregor ","4"
"Alexis ","15"
"George ","17"
하지만 (간단한 .csv)를 print
대신 사용하고 awk
쉼표를 추가할 수 있습니다.OFS
awk '{ a[$2]++ }END{ for(i in a) print i,a[i] }' OFS=,
Gregor,4
Alexis,15
George,17
아니면 그냥 현장에서 인쇄하세요.
awk '{ a[$2]++ }END{ for(i in a) print i","a[i] }'
Gregor,4
Alexis,15
George,17
성숙한 .csv 형식의 경우.
awk '{ a[$2]++ }END{ for(i in a) print "\""i"\",\""a[i]"\"" }'
"Gregor","4"
"Alexis","15"
"George","17"