파일의 한 열에 몇 개의 다른 단어가 있는지 계산하는 방법

파일의 한 열에 몇 개의 다른 단어가 있는지 계산하는 방법

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

관련 정보