728x90

다량의 데이터를 추출하면 필연적으로 정렬에 대한 필요성이 생깁니다. 정렬이 필요한 순간은 정말 다양하겠지만 대표적인 경우들을 들어보자면, 1) 특정한 조건에 만족하는 로그 라인의 갯수를 오름/내림 차순으로 정렬, 2) 시계열 순으로 로그가 추출되지 않은 경우, 시간 컬럼을 기준으로 로그 라인을 정렬과 같은 것이 있습니다. 1의 경우는 카운트를 위한 명령을 파이프로 연결후 쉽게 정렬할 수 있습니다.


$ cat domain.log | awk '{print $3}' | sort


위의 커맨드는 domain.log 파일을 핸들링하면서 세번째 열을 출력하고 이를 정렬하는 명령어 입니다. 여기에 파이프를 추가하여 유니크(Unique)한 이름을 발라내고, 다시 카운트된 갯수를 기준으로 정렬하려면 아래와 같은 명령을 생각할 수 있습니다.


$ cat domain.log | awk '{print $3}' | sort | uniq -c | sort -rn


그런데 특정한 컬럼을 기준으로 정렬하되 전체 데이터를 유지하려면 awk 명령으로는 왠지 좀 불편한 느낌입니다. 이때는 awk 를 이용하지 말고 sort 명령만으로 정렬하는 것이 더 유리합니다. 


$ cat domain.log | sort -k 3


이렇게 하면, 세번째 컬럼 (이때는 공백으로 각 컬럼이 나뉘어진 데이터라 가정했습니다) 을 기준으로 정렬후 데이터를 출력해 주게 됩니다. 자주 쓰는 명령인데 쓸때마다 자꾸 구글링하게 되어 블로그에 기록해 둡니다!



728x90
728x90
리눅스 계열의 운영체제를 사용하다 보면 참 편리하게 쓰는 것이 apt-get 이나 yum 과 같은 패키지 관리자다. 업데이트가 필요한 패키지를 확인해주고 간단한 명령으로 설치해주는 것은 바쁜 현대인들(?)에게 무척이나 반가운 기능일 수 밖에 없다. 당연히 같은 피가 섞여 있는 맥 운영체제 Mac OS 에도 둘 중 하나는 있겠지 했으나 현실은 그렇지 못했다.


그러던 중 찾은 것이 바로 Homebrew 라는 도구. 맥 운영체제인 OS X 에서 사용할 수 있는 루비 기반의 패키지 관리도구다. 사용방법은 apt-get 이나 yum 과 크게 다르지 않다. Ruby 스크립트를 이용해서 보다 체계적인 사용도 가능하다는 것이 장점. 설치 방법도 간단해서 굳이 Hoembrew 웹사이트 (http://brew.sh/) 를 방문할 필요도 없이 터미널에서 아래 명령어를 입력하면 끝.

 
이제 Mac OS X 에서도 간단하게 패키지를 설치하는 기쁨을 맛보도록 해보자. 아직도 내겐 너무 어색한 Mac OS X ~

- NoPD - 
728x90

+ Recent posts