2013/05/20 01:30
tasker에서 wget, grep, sed, awk로 블로그 카운터 뽑아 Minimalistic Text로 삽입하기 성공
article id #1349
categorized under 하드웨어이야기/모바일 & written by Nes
categorized under 하드웨어이야기/모바일 & written by Nes
원래는 전에도 내 블로그 카운터를 tasker를 통해 Minimalistic Text에 삽입시켜 표시한 적이 있었다.
하지만 그 때의 운영방식 이랬다.
- 웹서버 따로 두고 python과 정규식을 이용해 블로그 카운터를 추출해 이를 html로 저장.
- tasker로 해당 html 페이지 URL에 접속해 내용을 읽어와 태스커 변수에 할당.
- Minimalistic Text에 테스커 변수를 할당해 폰 메인에 블로그 카운터 표시.
따라서 컴퓨터가 꺼져있을 땐 블로그 카운터가 당연히 폰에서 표시되질 않았다.

이런식의 구현을 위한 목적이었다. 참고로 본 캡쳐 사진의 카운터는 위의 방법이 아닌 아래의 방법으로 구현된 것이다.
그렇데 몇달은 불편했지만 나름 잘 사용한 기억이 있다.
하지만 얼마 후 옵티머스LTE2의 젤리빈 업그레이드 및 사용하던 컴퓨터의 윈도우 8로의 업그레이드는 이런 환경을 다시 셋팅해 블로그 카운터를 표시하는데 상당한 귀차니즘을 안겨주었다.
그렇게 젤리빈 업그레이드 이후에는 tasker는 사용해도 Minimalistic Text와의 연동은 한동안 사용하지 않고 있었다.
그리고 한참의 시간이 흘렀다.
최근 무슨 바람이 불었는지 bash 및 쉘스크립트에 꽂혀있는 나.
공부를 하니 역시 새로운 지식이 쌓였다.
그 지식이란 다름아닌 find, grep, xargs를 제대로 연동해서 쓰는 법.
그리고 이를 활용해 정말로 많은 것들이 가능하다는 것을 깨달은 것이다.
(특히 이들을 cygwin과 연동해 쓰면 정말 대박임!)
어디 그 뿐만인가?
기존에 블로그 카운터를 Minimalistic Text에 표시하기 위해 따로 웹서버를 운영할 필요 없이 테스커의 shell script 기능만 활용해도 가능하단걸 알게 되었다.
제목처럼 쉘스크립트 명령어인 wget, grep, sed, awk만으로도 위에서 말했던 것들이 가능하단 것을 말이다.
그런데 조건은 있다.
위의 쉘스크립트 명령어는 안드로이드 기본 쉘에선 지원하지 않는 것들이 있다.
따라서 이들 명령어를 추가시켜주는 busybox란 툴이 필요한데 이걸 설치하려면 폰이 루팅된 상태여야 한다.
이 조건에서 tasker로 카운터 추출과 Minimalistic Text는 대충 아래와 같은 수순으로 연동시켰다.
- tasker에서 10분에 한번 꼴로 실행되는 프로파일 생성
- 첫번째 task로 Run Shell을 선택 후 아래와 같이 내용 삽입

Command에 기술한 내용은 아래에서 추가적으로 설명하고 어쨌든 결과값을 %로 시작하는 tasker 글로벌 사용자 변수로 저장했다.
- 카운터 값이 들어있는 %NesBlogCounter 변수를 Minimalistic Text에서 참조할 수 있도록 셋팅 - 관련 내용은 여길 참조

앞의 %NesBlogCounter는 Minimalistic Text에서 참조할 변수명이고 여기에 첫번째 task에서 생성한 %NesBlogCounter 값을 대입시킨 것이다. 편의상 둘의 이름을 같게 해둔 것이니 참고하시도록.
- Minimalistic Text에서 위의 변수 내용의 값을 읽어 위젯으로 스마트폰 바탕화면에 표시 - 이것도 위의 관련 내용 링크 참조.
- 끗~
말안해도 위의 수순에서 가장 중요하고도 난해한 것은 2번에 기술한 Command의 내용일 것이다.
다시한번 적어보자.
wget -q -O- http://blog.nemesys.co.kr/tt/keylog | awk '/Since 2006 Nes/,/<\/span>/' | grep -io '<strong>[^<]*</strong>' | grep -o '[0-9]*' | sed '1 s@\(.*\)@Total : \1 / @' | sed '2 s@\(.*\)@T : \1 / @' | sed '3 s@\(.*\)@Y : \1@' | tr -d '\n'
어짜피 여기까지 읽어내리는 분이라면 대충 위의 내용이 어떤 프로세스인지 말 안해도 아는 분이 대부분일테다.
하지만 대충이나마 설명해보면 아래와 같다.
- wget -q -O- http://blog.nemesys.co.kr/tt/keylog
wget 명령어로 블로그 카운터가 표시되어 있는 아무 페이지나 긁어온다.
읽어들인 내용은 전체 html 소스코드겠지. - awk '/Since 2006 Nes/,/<\/span>/'
awk 명령어로 위의 html 소스코드 중 Since 2006 Nes 부터 </span> 태그까지의 내용만을 추출한다. .
(원래 첨에는 이걸 grep을 활용하려 하였다. 하지만 awk가 훨 편리했다!) - grep -io '<strong>[^<]*</strong>' | grep -o '[0-9]*'
2번에서 추출한 내용에서 strong 태그에 둘러쌓인 내용을 추출하고 그 속에서 숫자만을 빼낸다.
(이거... 일반적인 리눅스 환경이었음 안이렇게 해도 된다. 하지만 busybox에서 제공한 grep 명렁어가 Perl 스타일의 정규식을 지원하지 않기 때문에 일케 처리함. Perl 스타일 정규식이 지원된다면 grep -iPo '(?<=<strong>).*?(?=<\/strong>)' 일케 함 되는데 말이지. ) - sed '1 s@\(.*\)@Total : \1 / @' | sed '2 s@\(.*\)@T : \1 / @' | sed '3 s@\(.*\)@Y : \1@'
sed 명령어로 각 라인의 숫자 앞에 전체, 오늘, 어제의 라벨을 달아주는 과정(복잡해 보이지만 글케 중요하진 않음ㅋ) - tr -d '\n'
마지막으로 tr 명령어로 줄바꿈 문자를 지워준다. 이상~
위에 쓰인 명령어중 핵심이라 함은 역시 grep, awk, sed이다.
grep이야 그렇다고 쳐도 awk, sed는 나 역시 초보 단계라 잘은 모른다.
하지만 몇가지 테스트를 해보며 느낀바는 이들 명령어의 조합으로 많은 일들을 간단하게 처리할 수 있다는 것이다.
그리고 이 명령어의 핵심을 이루는 건 역시 정규식!
역시 정규식은 짱이다~ㅋ
자....
문제는 이거다.
지금까지의 내용은 소스를 수정하지 않는 이상 오로지 내 블로그에서만 활용될 수 있는 형태이다.
하지만 위의 소스 설명부에서 사용한 awk, grep, sed만 어느정도 익히게 되면 여러분이 긁어오고 싶은 사이트의 내용을 긁어 필요한 부분만 추출해 다양하게 활용이 가능하다.
여기서는 단순하게 카운터하나 달랑 긁어온 거지만 사람에 따라서 활용법이 어디 이 뿐만이겠는가?
단언할 수 있는 바는
정규식이란 놈을 한번 배워두심 평생에 걸쳐 복을 받게 되실 것이다!ㅋ
마지막으로 tasker를 활용해 삶이 편리해지는 몇가지 방법들이 글 아래 관련글에 나와 있으므로 관심있으신 분들은 참고하심 좋겠다.
이상 끗~
PS : 참고내용 추가
- 안드로이드에 busybox 설치 후 shell 스크립트 테스트는 안드로이드에 SSHDroid 등의 SSH Server 프로그램을 설치해 putty 등으로 접속해 테스트하는 것이 편하다. adb도 괜찮고.
- tasker에 기다란 소스코드를 삽입하는 경우 직접 치는 것보다 파일로 옮겨 복사하거나 LG OSP 등의 원격접속 프로그램을 사용해서 편집하는게 많이 편타.
최근 한달간 인기글
- 윈도우 PC 및 안드로이드 epub3 지원 뷰어 및 제작환경 등에 관한 고찰
- 구글에서 회원수 만명이상의 네이버 카페만 검색하는 방법 with numrange
- 전효성 민주화 발언이라.. 뜻도 모르고 유행어라고 함부로 쓰면 클나지ㅋ
- jquery mobile에서 애드센스가 제대로 노출 안되는 문제 해결 방법 with 텍스트큐브
- CentOS 6.4 다운로드는 다음(DAUM) 토렌트가 속도 쵝오~
- 요즘 도메인 DNS 갱신 시간은 무지하게 빠르구나ㅋ
- chm 파일 기본 뷰어에서도 폰트를 변경해서 볼 수 있었구나...ㅠㅠ
- gmail(지메일)에서 특정 메일이 스팸으로 빠지지 않게 하는 방법 with 필터링 기능
- emeditor에서 정규식(regex) 검색 및 치환시 여러줄 선택하는 방법
- 확실히 모바일 페이지의 관련글 노출은 방문객을 붙잡는데 효과가 있구나
이 글의 관련글
- 안드로이드 최고의 자동화 프로그램 tasker 활용 및 아이디어 정리
- 옵티머스LTE2 젤리빈 업그레이드 후기 및 루팅 관련 비망록 with GomdoLight 커스텀롬 (1)
- 중고 스마트폰 활용 방법, 팔기 말고 뭐 좋은거 없나?
- 안드로이드 스마트폰을 5분만에 원격 감시카메라로 만들기 (13)
- tasker 어플을 활용한 안드로이드 휴대폰 자동 통화 녹음 기능 쵝오! (3)
- tasker를 활용한 카카오톡 메세지 음성 알람 재미있네ㅋ (4)
- 안드로이드 스파이앱 대처법이나 대응법은 없는 건가?
- 옵티머스 LTE 2에 달린 NFC 태그 (LG Tag+) 사용법 및 활용 방법에 관한 고민 (1)
- 안드로이드용 바이러스백신 어베스트(Avast) 업그레이드 이후 문제 폭발ㅋ (2)
- 마눌에게 아이폰5 말고 옵티머스g를 추천했다 이유는 스펙도 있지만 디자인이.. (4)
- 갤럭시탭 7인치 젤리빈 업그레이드 후 비망록 - tasker & sl4a를 활용한 매크로 프로그램 등
- 갤럭시s3 번인현상으로인한 화면 얼룩에 이어 유격, 균열 논란까지.. (4)
- 옵티머스LTE2 테마박스 완전 거지 같네ㅋ(계속 단점 발견중) (4)
- 윈도우 PC 및 안드로이드 epub3 지원 뷰어 및 제작환경 등에 관한 고찰
- 안드로이드 NDS 에뮬레이터(닌텐도DS) NDS4Droid 롬파일 듀얼코어 구동기 (5)
- 출시일 임박한 아이폰5 전면 패널 유출 - 아이폰4S과 비교해 길어진 크기로 디자인확정?
- 안드로이드용 모바일 파이어폭스 생각보다 괜찮다 하지만...
- 탐색기에서 정규식이 지원되는 파일명 일괄 변경 프로그램 - Rename Regular Expression (5)
- 팬택 베가s5 갤럭시s3 LTE 보다 먼저 출시! 출시일, 스팩, 가격, 장단점은?
- 유플러스 070플레이어(YP-GB70)의 스펙, 기능, 장점, 단점, 가격 등을 확실히 알게되었다. (10)
- 옵티머스 LTE2 루팅 및 벽돌을 거쳐 폰트 변환 후 고런처 테마 셋팅.. (6)
- 아이뉴스24는 IT신문계의 경향 or 한겨레?ㅋ
- 빠른 컴퓨터로 뭘 할 수 있을까?
- 안드로이드 사설IP에 관한 소고.. (2)
- 070플레이어2 VS 올레 스마트홈 폰 HD 스펙 비교 및 장점 단점. 그런데 이걸 사야하나? (1)
REPLY AND TRACKBACK RSS http://blog.nemesys.co.kr/tt/rss/response/1349
REPLY AND TRACKBACK ATOM http://blog.nemesys.co.kr/tt/atom/response/1349
REPLY AND TRACKBACK ATOM http://blog.nemesys.co.kr/tt/atom/response/1349
TRACKBACK ADDRESS
이 글에는 트랙백을 보낼 수 없습니다
이 글에는 트랙백을 보낼 수 없습니다
TRACKBACK RSS http://blog.nemesys.co.kr/tt/rss/trackback/1349
TRACKBACK ATOM http://blog.nemesys.co.kr/tt/atom/trackback/1349
TRACKBACK ATOM http://blog.nemesys.co.kr/tt/atom/trackback/1349
REPLY RSS http://blog.nemesys.co.kr/tt/rss/comment/1349
REPLY ATOM http://blog.nemesys.co.kr/tt/atom/comment/1349
REPLY ATOM http://blog.nemesys.co.kr/tt/atom/comment/1349











