Submit Search
Upload
2012年10月27日 Hbstudy#38
•
18 likes
•
18,262 views
Ryuichi Ueda
Follow
参加者にワンライナーをゴリゴリ書いてもらいつつTukubaiのコマンドを紹介するという内容でした。
Read less
Read more
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
Recommended
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
型安全性入門
型安全性入門
Akinori Abe
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
Recommended
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
Haruka Oikawa
型安全性入門
型安全性入門
Akinori Abe
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
「五次方程式が代数的に解けないわけ」第3回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
直交領域探索
直交領域探索
okuraofvegetable
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
xenophobia__
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
圏論とHaskellは仲良し
圏論とHaskellは仲良し
ohmori
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
Quine・難解プログラミングについて
Quine・難解プログラミングについて
mametter
Uspstudy20121208
Uspstudy20121208
Ryuichi Ueda
20130223 OSC Tokyo/Spring
20130223 OSC Tokyo/Spring
Ryuichi Ueda
More Related Content
What's hot
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
直交領域探索
直交領域探索
okuraofvegetable
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
xenophobia__
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
KageShiron
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
圏論とHaskellは仲良し
圏論とHaskellは仲良し
ohmori
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
Quine・難解プログラミングについて
Quine・難解プログラミングについて
mametter
What's hot
(20)
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Convex Hull Trick
Convex Hull Trick
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
直交領域探索
直交領域探索
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
すごい配列楽しく学ぼう
すごい配列楽しく学ぼう
分散システムについて語らせてくれ
分散システムについて語らせてくれ
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
明日使えないすごいビット演算
明日使えないすごいビット演算
暗認本読書会11
暗認本読書会11
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
圏論とHaskellは仲良し
圏論とHaskellは仲良し
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
Quine・難解プログラミングについて
Quine・難解プログラミングについて
Similar to 2012年10月27日 Hbstudy#38
Uspstudy20121208
Uspstudy20121208
Ryuichi Ueda
20130223 OSC Tokyo/Spring
20130223 OSC Tokyo/Spring
Ryuichi Ueda
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会
Ryuichi Ueda
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
mametter
Reading Self-descriptive FizzBuzz
Reading Self-descriptive FizzBuzz
Hiroyuki Morita
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
Ryuichi Ueda
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
20131102 第7回シェル芸勉強会
20131102 第7回シェル芸勉強会
Ryuichi Ueda
プログラマのための文書推薦入門
プログラマのための文書推薦入門
y-uti
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
Oneliner
Oneliner
NNCT programming study group
Code iq×japanr 公開用
Code iq×japanr 公開用
Nobuaki Oshiro
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
azuma satoshi
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Maatkitの紹介
Maatkitの紹介
Akinori YOSHIDA
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
about DakotagUI
about DakotagUI
Etsuji Nomura
Similar to 2012年10月27日 Hbstudy#38
(20)
Uspstudy20121208
Uspstudy20121208
20130223 OSC Tokyo/Spring
20130223 OSC Tokyo/Spring
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Reading Self-descriptive FizzBuzz
Reading Self-descriptive FizzBuzz
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
20131102 第7回シェル芸勉強会
20131102 第7回シェル芸勉強会
プログラマのための文書推薦入門
プログラマのための文書推薦入門
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Oneliner
Oneliner
Code iq×japanr 公開用
Code iq×japanr 公開用
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
zsh とわたし
zsh とわたし
Maatkitの紹介
Maatkitの紹介
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
about DakotagUI
about DakotagUI
More from Ryuichi Ueda
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
Ryuichi Ueda
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
Ryuichi Ueda
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
Ryuichi Ueda
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
Ryuichi Ueda
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
Ryuichi Ueda
bash(の変な使い方)update
bash(の変な使い方)update
Ryuichi Ueda
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Ryuichi Ueda
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Ryuichi Ueda
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
Ryuichi Ueda
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
Ryuichi Ueda
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
Ryuichi Ueda
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
Ryuichi Ueda
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Ryuichi Ueda
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Ryuichi Ueda
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Ryuichi Ueda
Robot frontier lesson1 2018
Robot frontier lesson1 2018
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
Ryuichi Ueda
More from Ryuichi Ueda
(20)
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
移動ロボットのナビゲーション
移動ロボットのナビゲーション
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
bash(の変な使い方)update
bash(の変な使い方)update
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Robot frontier lesson1 2018
Robot frontier lesson1 2018
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2012年10月27日 Hbstudy#38
1.
hbstudy#38 シェルスクリプト(Open usp Tukubai)で
いろいろやってみよう! USP研究所/USP友の会 上田 隆一
2.
自己紹介&近況 ●
自己紹介 – 赤いパーカーのおじさん – USP研究所スーパー平社員にしてUSP友の会の会長 ● 近況 – 連載が好評らしいです。 ● Software Design 誌 「お彼岸開眼シェルスクリプト」 – TechLION vol. 10 来てね ● 村井先生 ● 11/16(金)の夜@六本木 2012年10月27日 hbstudy#38 2
3.
今日やること
何したらおもしろい&ためになるか この一ヶ月間悩みました。 2012年10月27日 hbstudy#38 3
4.
今日やること ●
Open usp Tukubai の紹介をしようにも、 何に使うか分からなければつまらん – 道具だけ話してもね・・・ – バットの使い方の説明をして野球をしないようなもの 2012年10月27日 hbstudy#38 4
5.
今日やること ●
「GUIに慣れてしまった現代人に 足りないのはシェル芸だ!」 → シェル芸人育成ドリルをやります ● (ついでにopen usp tukubaiもやる。便利だから) 2012年10月27日 hbstudy#38 5
6.
シェル芸とは? ●
こんなことはないですか? – よくある風景A ● 上司S: 「ん?このマシンなんか設定おかしくない?」 ● 部下M: (hogehoge.confをlessして・・・) 「うわー、この設定ファイル100万行あるから、 あと5時間くらい待ってください。」 – よくある風景B ● 上司S:「このディレクトリに100万個ファイルがある。 このうちファイル名にaの付くものだけをこっちの ディレクトリに移しなさいっ。」 ● 部下M:「はい!マウスで・・・」 2012年10月27日 hbstudy#38 6
7.
シェル芸とは? ●
マウスも使わず、 プログラムも書かず、 GUIツールを立ち上げる間もなく、 あらゆる調査・計算・ファイル処理を コマンド入力一撃で終わらす。 ※シェル芸人イメージ (麻雀は天和で終わらす) 2012年10月27日 hbstudy#38 7
8.
ということで ●
端末操作だけでいろんな仕事を できるようになってもらいます。 – シェルスクリプトなぞ大規模エンタープライス用 – 今回の内容をおさえればクソ長いシェルスクリプトは 書かなくなることでしょう・・・ – 今回はエディタすら使用禁止 2012年10月27日 hbstudy#38 8
9.
時間割 ●
前半戦(~19:30) – 普通のコマンドで端末と格闘 – 桜井章一氏等の言うところの「ヒラッコ」 ● 休憩と準備(19:30~19:50) – open usp Tukubai インストール ● 後半戦(~21:20) – open usp Tukubaiも使って端末と格闘 – 桜井章一氏等の言うところの「裏技」 2012年10月27日 hbstudy#38 9
10.
進め方(どうせバイニン玄人が潜んでいるので・・・) ●
カップリングペアリングします。 ● ペア(3人グループも可)作ってください – UNIX系OSでCUI歴が長い人 × そうでもない人 ● とにかくみんなで問題を解いていきます。 – なるべく多くの人が解けるまで待ちます。 – 問題がすぐ解けてしまったら、 部屋を回って他の方の指導をお願いします。 2012年10月27日 hbstudy#38 10
11.
問題の解き方 ●
基本はbashかshで ● 使えるコマンドはなんでも使え – posixとか気にするのはできるようになってから! ● できる人はいろいろな方法で挑戦 – それも終わったら他の人を指導 – 玄人勢の献身がこの勉強会を成功させます! 2012年10月27日 hbstudy#38 11
12.
問題1: ユーザの抽出(初級) ●
/etc/passwd から、ユーザ名を抽出したリストを 作ってください – 使いそうなコマンド: awk, sed, tr, cut, ... 2012年10月27日 hbstudy#38 12
13.
問題1: 答え ●
$ awk -F: '{print $1}' /etc/passwd > ans.1 ● $ sed 's/:..*//' /etc/passwd > ans.2 ● $ cut -d: -f1 /etc/passwd > ans.3 ● $ tr ':' ' ' < /etc/passwd | awk '{print $1}' > ans.4 ● $ awk '{sub(/:..*/,"",$0);print}' /etc/passwd > ans.5 ● $ perl -F: -lane 'print $F[0]' /etc/passwd > ans.6 ● $ ruby -F: -ne 'puts $_.split[0]' /etc/passwd > ans.7 2012年10月27日 hbstudy#38 13
14.
問題2: ユーザの抽出2(中級) ●
/etc/passwd から、次を調べてください。 – ログインシェルがbashのユーザとshのユーザ、 どちらが多い? ● cut, awk, sort, uniq, grep, ... 一目見て分かれば出力はなんでもよいです。 2012年10月27日 hbstudy#38 14
15.
答え ●
$ cut -d: -f7 /etc/passwd | grep -E '/(ba)?sh$' | sort | uniq -c > ans.1 ● $ sed 's;^..*/;;' /etc/passwd | awk '/^bash$|^sh$/' | sort | uniq -c > ans.2 ● $ awk -F/ '$NF=="sh"||$NF=="bash"{print $NF}' /etc/passwd | sort | uniq -c > ans.3 ● $ awk -F/ '{print $NF}' /etc/passwd | awk '/^sh$| ^bash$/' | sort | uniq -c > ans.4 2012年10月27日 hbstudy#38 15
16.
問題3: ファイルの一括変換(中級) ●
/etcの下にあるすべてのbashスクリプト (#!/bin/bashで始まるもの) について以下の操作をしてください。 – ~/hogeというディレクトリにコピー – その際、 「#!/bin/bash」を「#!/usr/local/bin/bash」 に変更 – grep, sed, ... 2012年10月27日 hbstudy#38 16
17.
答え ●
$ grep -r '#!/bin/bash' /etc 2> /dev/null | sed 's/:..*$//' | while read f ; do sed 's;#!/bin/bash;#!/usr/local/bin/bash;' $f > ~/hoge/$(basename $f) ; done 2012年10月27日 hbstudy#38 17
18.
問題4: 集計(中級) ●
左のようなファイルを作り、 右のように集計してください。 – – awk, sort, sed, uniq, ... 2012年10月27日 hbstudy#38 18
19.
答え ●
$ awk '{print int($1/10)}' ages | sort -n | uniq -c | awk '{print $2*10"~"$2*10+9,$1}' > ans.1 ● $ sed 's/.$//' ages | sed 's/^$/0/' | sort -n | uniq -c | awk '{print $2*10"~"$2*10+9,$1}' > ans.2 ● $ cat ages | sed 's/.$//' | sed 's/^$/0/' | sort -n | uniq -c | awk '{print $2*10,$2*10+9,$1}' | sed 's/ / ~/' > ans.3 2012年10月27日 hbstudy#38 19
20.
問題5: Fizz Buzz
(上級) ● 1,2,3,4,5...と数えていって・・・ – 3の倍数だったら数字の代わりに「Fizz」 – 5の倍数だったら数字の代わりに「Buzz」 – 15の倍数だったら数字の代わりに「FizzBuzz」 と言う。 ● 出力: – 1,2,Fizz,4,Buzz,...,11,Fizz,13,14,FizzBuzz,16,... – awk, sed, ... 2012年10月27日 hbstudy#38 20
21.
答え ●
素直にif文を書く – $ seq 1 100 | awk '{if($1%15==0){print "FizzBuzz"}else if($1%5==0){print "Buzz"}else if($1%3==0){print "Fizz"}else{print $1}}' | tr 'n' ',' ● 先に計算を済ませる – $ seq 1 100 | awk '{print $1,$1%3,$1%5,$1%15}' | awk '{a=$1;if($4==0){a="FizzBuzz"}else if($3==0){a="Buzz"}else if($2==0){a="Fizz"};print a}' | tr 'n' ',' ● 意地でもif文を使わない – $ seq 1 16 | awk '$1%3==0{printf "Fizz"}$1%5==0{printf "Buzz"}{print " " $1}' | awk '{print $1}' | tr 'n' ',' 2012年10月27日 hbstudy#38 21
22.
●
sedる – $ seq 1 16 | awk '{print $1,$1%3,$1%5}' | sed 's/..* 0 0$/FizzBuzz/' | sed 's/..* 0$/Buzz/' | sed 's/..* 0 ..*$/Fizz/' | awk '{print $1}' | tr 'n' ',' ● 三項演算子る – $ seq 1 16 | awk '{print $1%15==0?"FizzBuzz": $1%5==0?"Buzz":$1%3==0?"Fizz":$1}' | tr 'n' ',' – $ seq 1 16 | awk '{printf $1%15==0?"FizzBuzz": $1%5==0?"Buzz":$1%3==0?"Fizz":$1; printf ","}' 2012年10月27日 hbstudy#38 22
23.
休憩前に ●
Open usp Tukubai のインストールをお願いします。 ● ダウンロード方法 – $ wget --no-check-certificate https://uec.usp- lab.com/TUKUBAI/DOWNLOAD/open-usp-tukubai- 20120802.tar.bz2 ● インストール方法 – $ tar xjvf ./open-usp-tukubai-20120802.tar.bz2 – (rootになって、open-usp-tukubai-20120802に移動) – # make install ● 端末で join0 と打って、usageが出てきたらインストール完了 2012年10月27日 hbstudy#38 23
24.
後半戦 ●
open usp Tukubai の得意な処理 2012年10月27日 hbstudy#38 24
25.
問題6: 日付の計算 (中級) ●
1978年2月16日は、 2012年10月27日の何日前でしょう? – echo, date, tr, awk, ... – mdate (オンラインマニュアル参照のこと) 2012年10月27日 hbstudy#38 25
26.
答え ●
Tukubai 未使用 – $ echo 19780216 20121027 | tr ' ' 'n' | date +%s -f - | tr 'n' ' ' | awk '{print $1-$2}' | awk '{print $1/(24*60*60)}' -12672 ● Tukubai 使用 – $ mdate 19780216 20121027 -12672 ということで12672日前でした。 2012年10月27日 hbstudy#38 26
27.
問題7: リストにないものを探す(中級) ●
まず以下のように、1から10の数字が書いてあり、 そのうちの一つの数が欠けているファイルを作りましょう。 ● 欠けた数字を端末に表示してください。(diff, 目grep禁止) – sort, uniq, awk, join0,... 2012年10月27日 hbstudy#38 27
28.
答え ●
Tukubaiなし – $ seq 1 10 | sort - nums | uniq -u – $ sort nums <(seq 1 10) | uniq -u (邪道) – $ cat nums | awk '{a+=$1}END{print 55-a}' ● Tukubai的正攻法 – $ seq 1 10 | sort > tran – $ sort nums | join0 +ng key=1 - tran > /dev/null 2012年10月27日 hbstudy#38 28
29.
問題8: CPU使用率(上級) ●
topの出力から、どのユーザが何%CPUを 使用しているか集計してください。 ● top 出力のファイルへの渡し方 – $ top -b -n 1 | command ... – tail, awk, sort, sm2, self, ... – ※psから計算したほうがよかったと、後から気づく 2012年10月27日 hbstudy#38 29
30.
答え ●
Tukubai なし – $ top -b -n 1 | tail -n +8 | awk '{print $2,$9}' | sort | awk '{if($1==u){c+=$2}else{print u,c;u=$1;c=$2}}END{print u,c}' | sort -k2,2nr ※連想配列を使うともっと簡単です。 ● Tukubai あり – $ top -b -n 1 | awk 'NF==10' | tail -n +2 | self 2 9 | sort | sm2 1 1 2 2 | sort -k2,2nr (Tukubaiを覚えないと、端末で済ませる発想にならないかも・・・) 2012年10月27日 hbstudy#38 30
31.
問題9: 横に並んだ数字のソート(上級) ●
次のように、適当に数字が記入されたファイルを 作ってください。 ● 各行ごとに、数字を小さい順にソートしてください。 – awk, sort, tr, juni, tarr, yarr, delf, ... 2012年10月27日 hbstudy#38 31
32.
答え ●
Tukubai なし – $ cat -n file | awk '{for(i=2;i<=NF;i++){print $1,$i}}' | sort -k1,1n -k2,2n | awk '{if($1!=a) {a=$1;printf "n"};print $2}' | tr 'n' ' ' | tr 'n' 'n' | awk 'NF!=0' ● Tukubai あり – $ juni file | tarr num=1 | sort -k1,1n -k2,2n | yarr num=1 | delf 1 2012年10月27日 hbstudy#38 32
33.
問題10: 対戦表を作る(上級) ●
左のようなファイルを作って、 右のようなcsv形式の表を作ってください。 – tac, awk, sed, tr, loopx, map, ... 2012年10月27日 hbstudy#38 33
34.
答え ●
Tukubai なし – $ cat teams | awk '{a=a " "$1;print $1}END{print a}' | tac | awk 'NR==1{print "_",$0;num=NF} {printf $1;for(i=1;i<=num;i++){printf ","};print ""}' | sed 's/ */,/g' | tr -d '_' > ans.1 ● Tukubai あり – $ loopx teams teams | awk '{print $0,"_"}' | map num=1 | tr ' ' ',' | tr -d '*_' > ans.2 2012年10月27日 hbstudy#38 34
35.
まとめ ●
お疲れさまでした!! ● このままシェル芸人の道を邁進するには? – manと格闘 – USP友の会入会入信 2012年10月27日 hbstudy#38 35
Download now