CSV 파일이 있습니다.
"AGNOLI Valerio","ITA","AST"
이 예에서는 두 번째 열에 "ITA"가 표시됩니다. 나는 이 문서에 약 100개의 다른 국적이 나열되어 있다고 추정합니다. 정확히 얼마나 다양한 국적이 있는지 알고 싶습니다.
답변1
cut -d ',' -f 2 filename | sort -u | wc -l
기본적으로 명령에서 ,
구분 기호로 지정하고 플래그를 사용하여 cut
두 번째 열의 값을 추출합니다. -f
이제 플래그를 사용하여 정렬 sort
하고 -u
플래그는 명령 목록에 고유한 값만 만듭니다. 마지막으로 wc -l
두 번째 열에 고유 국가 수를 가져오는 명령이 있습니다 .
시험
cat filename
jill,us,123
jack,us,345
jill,en,234
mark,en,432
kate,us,354
kane,ru,435
이제 명령을 실행한 후 내가 얻는 출력은 다음과 같습니다.
cut -d ',' -f 2 filename | sort -u | wc -l
3
답변2
이를 사용하면 awk
다른 바이너리를 호출하고 많은 프로세스를 분기하는 대신 더 효율적으로 계산하고 계산할 수 있습니다.
awk -F, '{a[$2]++} END{ for (i in a) print i, a[i]}' filename.csv