원래는 전에도 내 블로그 카운터를 tasker를 통해 Minimalistic Text에 삽입시켜 표시한 적이 있었다. 
하지만 그 때의 운영방식 이랬다.
  1. 웹서버 따로 두고 python과 정규식을 이용해 블로그 카운터를 추출해 이를 html로 저장. 
  2. tasker로 해당 html 페이지 URL에 접속해 내용을 읽어와 태스커 변수에 할당. 
  3. Minimalistic Text에 테스커 변수를 할당해 폰 메인에 블로그 카운터 표시. 
거기에 당시 사용했던 웹서버란게ㅋ 다른게 아닌 로컬에서 운영되는 내 컴퓨터. 
따라서 컴퓨터가 꺼져있을 땐 블로그 카운터가 당연히 폰에서 표시되질 않았다. 


이런식의 구현을 위한 목적이었다. 참고로 본 캡쳐 사진의 카운터는 위의 방법이 아닌 아래의 방법으로 구현된 것이다.

이런식의 구현을 위한 목적이었다. 참고로 본 캡쳐 사진의 카운터는 위의 방법이 아닌 아래의 방법으로 구현된 것이다.



그렇데 몇달은 불편했지만 나름 잘 사용한 기억이 있다.
하지만 얼마 후 옵티머스LTE2의 젤리빈 업그레이드 및 사용하던 컴퓨터의 윈도우 8로의 업그레이드는 이런 환경을 다시 셋팅해 블로그 카운터를 표시하는데 상당한 귀차니즘을 안겨주었다. 

그렇게 젤리빈 업그레이드 이후에는 tasker는 사용해도 Minimalistic Text와의 연동은 한동안 사용하지 않고 있었다. 

그리고 한참의 시간이 흘렀다.

최근 무슨 바람이 불었는지 bash 및 쉘스크립트에 꽂혀있는 나. 
공부를 하니 역시 새로운 지식이 쌓였다. 

그 지식이란 다름아닌 find, grep, xargs를 제대로 연동해서 쓰는 법.
그리고 이를 활용해 정말로 많은 것들이 가능하다는 것을 깨달은 것이다.
(특히 이들을 cygwin과 연동해 쓰면 정말 대박임!)

어디 그 뿐만인가? 
기존에 블로그 카운터를 Minimalistic Text에 표시하기 위해 따로 웹서버를 운영할 필요 없이 테스커의 shell script 기능만 활용해도 가능하단걸 알게 되었다. 
제목처럼 쉘스크립트 명령어인 wget, grep, sed, awk만으로도 위에서 말했던 것들이 가능하단 것을 말이다. 

그런데 조건은 있다. 
위의 쉘스크립트 명령어는 안드로이드 기본 쉘에선 지원하지 않는 것들이 있다. 
따라서 이들 명령어를 추가시켜주는 busybox란 툴이 필요한데 이걸 설치하려면 폰이 루팅된 상태여야 한다. 

이 조건에서 tasker로 카운터 추출과 Minimalistic Text는 대충 아래와 같은 수순으로 연동시켰다. 
  1. tasker에서 10분에 한번 꼴로 실행되는 프로파일 생성
  2. 첫번째 task로 Run Shell을 선택 후 아래와 같이 내용 삽입

    Command에 기술한 내용은 아래에서 추가적으로 설명하고 어쨌든 결과값을 %로 시작하는 tasker 글로벌 사용자 변수로 저장했다.

    Command에 기술한 내용은 아래에서 추가적으로 설명하고 어쨌든 결과값을 %로 시작하는 tasker 글로벌 사용자 변수로 저장했다.

  3. 카운터 값이 들어있는 %NesBlogCounter 변수를 Minimalistic Text에서 참조할 수 있도록 셋팅 - 관련 내용은 여길 참조

    앞의 %NesBlogCounter는 Minimalistic Text에서 참조할 변수명이고 여기에 첫번째 task에서 생성한 %NesBlogCounter 값을 대입시킨 것이다. 편의상 둘의 이름을 같게 해둔 것이니 참고하시도록.

    앞의 %NesBlogCounter는 Minimalistic Text에서 참조할 변수명이고 여기에 첫번째 task에서 생성한 %NesBlogCounter 값을 대입시킨 것이다. 편의상 둘의 이름을 같게 해둔 것이니 참고하시도록.

  4. Minimalistic Text에서 위의 변수 내용의 값을 읽어 위젯으로 스마트폰 바탕화면에 표시 - 이것도 위의 관련 내용 링크 참조.
  5. 끗~

말안해도 위의 수순에서 가장 중요하고도 난해한 것은 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 [email protected]\(.*\)@Total : \1 / @' |  sed '2 [email protected]\(.*\)@T : \1 / @' | sed '3 [email protected]\(.*\)@Y : \[email protected]' | tr -d '\n'

어짜피 여기까지 읽어내리는 분이라면 대충 위의 내용이 어떤 프로세스인지 말 안해도 아는 분이 대부분일테다. 
하지만 대충이나마 설명해보면 아래와 같다. 

  1. wget -q -O- http://blog.nemesys.co.kr/tt/keylog 
    wget 명령어로 블로그 카운터가 표시되어 있는 아무 페이지나 긁어온다. 
    읽어들인 내용은 전체 html 소스코드겠지. 

  2. awk '/Since 2006 Nes/,/<\/span>/'
    awk 명령어로 위의 html 소스코드 중 Since 2006 Nes 부터 </span> 태그까지의 내용만을 추출한다
    (원래 첨에는 이걸 grep을 활용하려 하였다. 하지만 awk가 훨 편리했다!)

  3. grep -io '<strong>[^<]*</strong>' | grep -o '[0-9]*'
    2번에서 추출한 내용에서 strong 태그에 둘러쌓인 내용을 추출하고 그 속에서 숫자만을 빼낸다. 
    (이거... 일반적인 리눅스 환경이었음 안이렇게 해도 된다. 하지만 busybox에서 제공한 grep 명렁어가 Perl 스타일의 정규식을 지원하지 않기 때문에 일케 처리함. Perl 스타일 정규식이 지원된다면 grep -iPo '(?<=<strong>).*?(?=<\/strong>)' 일케 함 되는데 말이지. )

  4. sed '1 [email protected]\(.*\)@Total : \1 / @' |  sed '2 [email protected]\(.*\)@T : \1 / @' | sed '3 [email protected]\(.*\)@Y : \[email protected]'
    sed 명령어로 각 라인의 숫자 앞에 전체, 오늘, 어제의 라벨을 달아주는 과정(복잡해 보이지만 글케 중요하진 않음ㅋ)

  5. 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 등의 원격접속 프로그램을 사용해서 편집하는게 많이 편타.

최근 한달간 인기글

이 글의 관련글

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
TRACKBACK ADDRESS
이 글에는 트랙백을 보낼 수 없습니다
REPLY RSS http://blog.nemesys.co.kr/tt/rss/comment/1349
REPLY ATOM http://blog.nemesys.co.kr/tt/atom/comment/1349
바탕화면 
wrote at 2013/06/24 15:30
바탕화면 여자 누구인가요????
asdf 
wrote at 2013/07/08 13:26
스카이 스트라케
이름 / Name : *
비밀번호 / Password : *
홈페이지 / Homepage :
비밀글 / Secret :
*1  ... *90  *91  *92  *93  *94  *95  *96  *97  *98  ... *1128 
SNS + RSS Links
rss
다음 일간 이슈 검색어
Since 2006 Nes's Random Blogz
Total 11063444 T194 Y2106

6497

2055

google chart api graph

-30 days

today : 194

전체 (1128)
Nes이야기 (123)
하드웨어이야기 (260)
소프트웨어이야기 (27)
외국어이야기 (12)
IT/웹이야기 (248)
연예계/방송이야기 (140)
게임이야기 (96)
광고/제품이야기 (58)
여행/먹거리이야기 (45)
세상이야기 (98)
최근에 쓴 글
구글 딥마인드 알파고가 이세돌을 꺾은날, 애드센스로 ...
구글 설문지(구글 폼)에서 정규식으로 입력 내용 사전 ... (1)
유플러스 tv g 4k uhd 셋톱박스를 신모델인 tvg 우퍼2... (9)
신장의 야망 창조 전국입지전 - 삼국지 13의 재미를 뛰... (2)
구글 애널리틱스(Google Analytics) 보고서 및 대시보...
그래픽카드 견적을 뺀 이번 조립컴퓨터, 스카이레이크 ... (1)
기어s 웨어러블 요금제로도 올레 맴버쉽 포인트 사용이...
안드로이드 롤리팝 포팅 버전 기어s 3g 요금제 가입 후... (2)
tasker http post 기능을 활용해 스마트폰 이벤트를 sl...
삼국지13 간단 후기 - 역대 장수제 시리즈의 정점을 찍...
네이버 웹마스터도구에 블로그와 RSS 주소 등록 후 10...
네이버 웹마스터도구 개편이 불러온 검색로직 및 트래...
삼성 갤럭시 기어s 롤리팝 포팅 후기 및 앱 사용기 (1)
삼성 갤럭시 기어s에 안드로이드 롤리팝 올리기 성공! (3)
CPU 잡아먹는 어베스트 avast mft utility(mftutil.exe...
유플러스 TVG 롤리팝 업데이트 후기(via 기기교체!!) (1)
블로그 포스팅이 점점 줄어드는 이유
u+ tv g 롤리팝 업데이트를 하릴없이 기다리며 써본 간... (9)
허니버터칩은 과연 꼬꼬면의 숙명을 피할 수 있을 것인가? (3)
LG유플러스 U+ tvg 4K UHD 간단 사용기 및 신구형 셋톱... (2)
구글 애널리틱스 웹로그 분석 공인 전문가 자격 인증 ...
스마트폰 사용 패턴 통계 및 분석 with Tasker & Googl... (5)
갤럭시 기어1 - 루팅 및 안드로이드 null롬 올린 후 두... (1)
옵티머스G프로 킷캣 업데이트 후 폰트변경 - 나눔바른...
갤럭시 기어1 - 루팅 및 안드로이드 커스텀 롬 사용기 ... (5)
구글 애널리틱스 UA 업그레이드 이후 애드센스 통계 안...
스마트폰 화면 밝기 어둡게해 야밤에 시력 보호하는 방법 (1)
블루투스 휴대용 스피커 로지텍 UE Boom 간단 리뷰 및 ...
구글 스프레드시트가 canvas를 활용해 만들어졌다니!! (1)
구글 드라이브 스프레드시트(엑셀)의 놀라운 기능 impo...