카테고리 없음
미션: 카톡 메시지 상위 3명 아이디 출력하기
green_ne
2022. 2. 17. 14:24
# 미션
linux 명령어 한 줄로,
카톡_메시지_기록.csv 중 가장 메시지를 많이 보낸 아이디 상위 3개 출력하기
# 풀이
원하는 column 가져오기 위해 다음과 같은 방법이 있다.
# ','를 delimiter(구분자)로 하여 2번째 field(열) 가져오기
cut -d ',' -f 2
# ','문자를 ' '로 대체 후, ' '를 delimiter로 하여 3번째 field 가져오기
tr ',' ' ' | cut -d ' ' -f 3
행에 따라 출현한 문자를 세기 위해,
처음에는 wiki에서 문자열 처리를 하는 linux CLI를 찾아보았다.
유사하게 문서에서 빈출단어를 출력하는 코드가 awk를 이용하였다.
http://wiki.kldp.org/wiki.php/Awk
https://ko.wikipedia.org/wiki/AWK
https://reakwon.tistory.com/163
그렇게 헤메다가 결국 관련 코드를 찾았다.
https://unix.stackexchange.com/questions/170043/sort-and-count-number-of-occurrence-of-lines
# 원하는 column이 맞는지 확인
cat Downloads/katalk.csv | cut -d ',' -f 2 | head -n 5
# 가장 많이 출현한 상위 3개의 아이디 출력
cat Downloads/kagg_study.csv | tr ',' ' ' | cut -d ' ' -f 3 | sort | uniq -c | sort -r | head -n 3
uniq -c 하기 전에 sort를 해줘야하지만, 따로 떨어져 있는 동일한 단어를 묶어서 셀 수 있다.
sort -r 은 빈출횟수에 따라 내림차순으로 정렬하기 위해 사용하였다.
반응형