16
2012 4 21 年月 3 LINUX 第回 女子部勉強会 awkもいいけどTukubaiもね! Open usp Tukubaiを使おう USP友の会 上田隆一

Linux女子部勉強会 2012年4月21日

Embed Size (px)

DESCRIPTION

コマンド漫談

Citation preview

Page 1: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会

awkもいいけどTukubaiもね!Open usp Tukubaiを使おう

USP友の会 上田隆一

Page 2: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 2

contents

● 0. 自己紹介● 1. USP友の会の紹介● 2. Tukubaiをシェルスクリプトで使い倒す● . 3 まとめ

7注:今回の資料は、昨年 月の第二回勉強会に訂正を入れたテイになってます。

Page 3: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 3

0. 自己紹介● 2第 回Linux女子部勉強会でやらかした人(&絡まれた)

Page 4: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 4

1. USP友の会● シェルスクリプト(CUI)のコミュニティー

● USP: universal shell programming● 200会員数:もうすぐ 人

● 会の綱領

● 「本物の技術・本物の人」

● 「酒は呑め呑め呑むならば(嘘)」

派手なウェブサイト

400

bashで書き直した

会社に移管

Page 5: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 5

情報発信

● イベント

● 4 22 月 日(日):第七回カーネル/VM探検隊で上田講演– ・・・明日じゃねーかよ。

● 5 14月 日(月):TechLION vol.7 @ 名古屋Geek Bar– 新東名を徒歩でどうぞ。

● ネット・メディア

● Twitter @usptomo(残念な駄洒落のみ)● Facebook USP「 友の会」(イベント等の告知)

● Software Design 誌連載「開眼シェルスクリプト」

Page 6: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 6

2. awkをシェルスクリプトで使い倒す● ログなどの処理に便利なコマンド

● awkをパイプでつなげてシェルスクリプトを書くと、かなりの種類の処理が可能になる。

cat <<- FIN | sed 's/awk/Tukubai/g'

FIN

Page 7: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 7

Open usp Tukubai

● USP研究所の商用コマンドの一部を一般公開したもの

ビジネス版 open版

言語 C言語 Python

コーディング指針 極限までチューニング

短く読みやすく

Page 8: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 8

入手方法

● GitHub● Open-usp-Tukubai で検索

● Unicage engineers' communtyサイト● UEC Tukubai で検索

● FreeBSDで使う● portsに入っています。

https://uec.usp-lab.com

Page 9: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 9

とりあえず使ってみる

● こんなファイル(FILE1という名前)a 100b 20c -10.4

● コマンドを打つ(短い!)

● cat FILE1 | self 1 (cat FILE1 | awk '{print $1}')● cat FILE1 | sm2 0 0 2 2

(cat FILE1 | awk 'BEGIN{a=0}{a+=$2}END{print a}')

Page 10: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 10

お題A:表計算をやってみましょう● ファイル(FILEA)

1 2 30.1 0.2 0.3 -1 -2 -3

● 横に足す

● $ cat FILEA | ysum(cat hoge | awk '{print $1,$2,$3,$1+$2+$3}')1 2 3 60.1 0.2 0.3 0.6-1 -2 -3 -6

Page 11: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 11

● 書式を整える

● $ cat FILEA | ysum | keta($ cat hoge | awk '{sum=$1+$2+$3;print $0, sprintf("%010s",sum)}')

1 2 3 60.1 0.2 0.3 0.6 -1 -2 -3 -6

Page 12: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 12

● 縦にも足してみましょう

● $ cat FILEA | ysum | self 1 1/4 | sm5 1 1 2 5 | delf 1 | keta

(cat hoge | awk '{print $0,$1+$2+$3}' | awk '{for(i=1;i<=4;i++){a[i]+=$i};print}END{print a[1],a[2],a[3],a[4]}' | awk '{for(i=1;i<=NF;i++){printf("%05s",$i)};printf("\n")}')

1 2 3 6 0.1 0.2 0.3 0.6 -1 -2 -3 -6 0.1 0.2 0.3 0.6

Page 13: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 13

お題B: HTMLを作る● $ cat TEMPLATEB

<table>

<!--AA-->

<tr><td>%1</td><td>%2</td>

<td>%3</td><td>%4</td></tr>

<!--AA-->

</table>

● $ cat FILEB1 2 3 6

0.1 0.2 0.3 0.6

-1 -2 -3 -6

0.1 0.2 0.3 0.6●

$ mojihame -lAA TEMPLATE FILEB<table> <tr> <td>1</td><td>2</td> <td>3</td><td>6</td> </tr> <tr> <td>0.1</td><td>0.2</td> <td>0.3</td><td>0.6</td> </tr> <tr> <td>-1</td><td>-2</td> <td>-3</td><td>-6</td> </tr> <tr> <td>0.1</td><td>0.2</td> <td>0.3</td><td>0.6</td> </tr></table>

Page 14: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 14

お題C CGI: を書く● 友の会サイトでもTukubaiが活躍(半日で作成)

● コンテンツの表示、検索、タグ機能、閲覧回数のカウント・ランキング・・・

Page 15: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 15

お題D:ログを集計してみましょう

● 集計してグラフを書く!(mojihame+svg)

Page 16: Linux女子部勉強会 2012年4月21日

2012 4 21年 月 日 3 LINUX第 回 女子部勉強会 16

3.まとめ● awk等、コマンドでテキストデータと戯れる

● 地味。腹筋なみに地味

● パズルと思えばおもしろい

● 重要:とりあえずインストールして、一個だけ、使い方を覚えてください。

● 一個だけでも端末で仕事します。

● han, zen, self, keta あたりがお勧め。

Tukubaiコマンドやawk

結構、派手

慣れるとテトリスのようになる