카테고리 없음

미션: 카톡 메시지 상위 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 은 빈출횟수에 따라 내림차순으로 정렬하기 위해 사용하였다.

 

 

 

반응형