Enviar pesquisa
Carregar
20131102 第7回シェル芸勉強会
•
6 gostaram
•
13,733 visualizações
Ryuichi Ueda
Seguir
KDDIウェブコミュニケーションズにて。講師スタッフ含め36人出席
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 30
Baixar agora
Baixar para ler offline
Recomendados
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
Ryuichi Ueda
20130223 OSC Tokyo/Spring
20130223 OSC Tokyo/Spring
Ryuichi Ueda
2012年10月27日 Hbstudy#38
2012年10月27日 Hbstudy#38
Ryuichi Ueda
Uspstudy20121208qonly
Uspstudy20121208qonly
Ryuichi Ueda
Recomendados
20130622第5回シェル芸勉強会スライド
20130622第5回シェル芸勉強会スライド
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
Ryuichi Ueda
20130223 OSC Tokyo/Spring
20130223 OSC Tokyo/Spring
Ryuichi Ueda
2012年10月27日 Hbstudy#38
2012年10月27日 Hbstudy#38
Ryuichi Ueda
Uspstudy20121208qonly
Uspstudy20121208qonly
Ryuichi Ueda
部活でシェル芸がはやらない
部活でシェル芸がはやらない
xztaityozx
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
Hisatoshi Onishi
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
th0x0472
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
Sword term02
Sword term02
Hakudou Fukuda
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
Oneliner
Oneliner
NNCT programming study group
PCさえあればいい。
PCさえあればいい。
bleis tift
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Uspstudy20121208
Uspstudy20121208
Ryuichi Ueda
Rubyで和暦をよみとる
Rubyで和暦をよみとる
Takashi Ota
お手軽並列処理
お手軽並列処理
博文 斉藤
20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集
Ryuichi Ueda
最近の PHP の話
最近の PHP の話
y-uti
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
techan555
Functions
Functions
do_aki
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
Ryuichi Ueda
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
Mais conteúdo relacionado
Mais procurados
部活でシェル芸がはやらない
部活でシェル芸がはやらない
xztaityozx
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
Hisatoshi Onishi
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
th0x0472
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
Sword term02
Sword term02
Hakudou Fukuda
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
Oneliner
Oneliner
NNCT programming study group
PCさえあればいい。
PCさえあればいい。
bleis tift
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
Mais procurados
(12)
部活でシェル芸がはやらない
部活でシェル芸がはやらない
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Sword term02
Sword term02
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Oneliner
Oneliner
PCさえあればいい。
PCさえあればいい。
zsh とわたし
zsh とわたし
Semelhante a 20131102 第7回シェル芸勉強会
Uspstudy20121208
Uspstudy20121208
Ryuichi Ueda
Rubyで和暦をよみとる
Rubyで和暦をよみとる
Takashi Ota
お手軽並列処理
お手軽並列処理
博文 斉藤
20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集
Ryuichi Ueda
最近の PHP の話
最近の PHP の話
y-uti
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
techan555
Functions
Functions
do_aki
Semelhante a 20131102 第7回シェル芸勉強会
(8)
Uspstudy20121208
Uspstudy20121208
Rubyで和暦をよみとる
Rubyで和暦をよみとる
お手軽並列処理
お手軽並列処理
20130216 シェル芸爆破デスマッチ勉強会 問題集
20130216 シェル芸爆破デスマッチ勉強会 問題集
最近の PHP の話
最近の PHP の話
Perl勉強会#2資料
Perl勉強会#2資料
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
zxでシェルスクリプトから逃げよう ~javascriptでシェルを書く~
Functions
Functions
Mais de 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
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
Mais de 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
第34回シェル芸勉強会
第34回シェル芸勉強会
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
20131102 第7回シェル芸勉強会
1.
第7回俺とお前のゆるゆる シェル芸勉強会 USP友の会 上田 隆一
2.
近況 • 本書いてます。 •
風邪薬で精神が朦朧としております。 2013/11/2 第7回シェル芸勉強会 2
3.
はじめに • ブログが盛り上がりました。 2013/11/2 第7回シェル芸勉強会 3
4.
喜んではいかん! • サーバが落ちた。落ち方が悪い。 –
メモリ使い過ぎ mysqld お前だよ。 2013/11/2 第7回シェル芸勉強会 4
5.
• bashCMSならこんなに耐えるのに・・・ –
注:実際にリクエストに応えているかは不明 2013/11/2 第7回シェル芸勉強会 5
6.
むやみにDRAM使うたらあかんで! • データを扱いたかったら基本はコレやろ! 標準入力
→ 標準出力 (DRAM使ってよいのはsort(1)の類いのコマンドだけ) • ウェブ業界にもシェル芸を! • ネオヒルズ族にもシェル芸を!(違う) 2013/11/2 第7回シェル芸勉強会 6
7.
シェル芸とは? • マウスも使わず、ソースコードも残さず、GUIツールを立 ち上げる間もなく、あらゆる調査・計算・テキスト処理を CLI端末へのコマンド入力一撃で終わらすこと –
定義のページを作った • hBp://blog.ueda.asia/ ?page_id=1434 シェル芸でロケットを飛ばす(嘘) 2013/11/2 第7回シェル芸勉強会 7
8.
今回の内容 • 問題10問 –
マニアックオプション大会 – 簡単な文章いじり(ブログが盛り上がったので追加) 2013/11/2 第7回シェル芸勉強会 8
9.
注意 • 解答例は Mac
で作成 • Linux の人は gawk, gsed, tail -‐r 等々を適宜 awk, sed, tac に読み替えのこと • その他環境でも、解答例にこだわらずネット等を 調べながら解答願います。 • 解答では、例題が解ければよい。 – 一般解を探すのは、場合によっては悪い癖となる。 2013/11/2 第7回シェル芸勉強会 9
10.
問題1 • ドットで区切られた4つの数字について、 左側の数字を優先に
数字の小さい順に並べてください。 2013/11/2 第7回シェル芸勉強会 10
11.
解答 • $ sort
-‐t. -‐k1,1n -‐k2,2n -‐k3,3n -‐k4.4n ip • $ cat ip | tr '.' ' ' | sort -‐k1,1n -‐k2,2n -‐k3,3n -‐k4,4n | tr ' ' '.' 2013/11/2 第7回シェル芸勉強会 11
12.
問題2 • 次の文について、taxi, 1km,
10000の前後に半角 スペースを挿入してください – このtaxiは1kmあたり10000円 2013/11/2 第7回シェル芸勉強会 12
13.
解答 • $ echo
このtaxiは1kmあたり10000円 | sed 's/[a-‐z0-‐9][a-‐z0-‐9]*/ & /g' • $ echo このtaxiは1kmあたり10000円 | gsed 's/[a-‐zA-‐Z0-‐9]+/ & /g' 2013/11/2 第7回シェル芸勉強会 13
14.
問題3 • 次の文についてspaceの前・invaderの後ろ・ 4の後ろのスペースを除去してください。
– 私の名前は space invader です。4 歳です。 2013/11/2 第7回シェル芸勉強会 14
15.
解答 • $
echo 私の名前は space invader です。4 歳です。 | sed 's/ space/space/' | sed 's/der /der/' | sed 's/4 /4/' • $ echo 私の名前は space invader です。4 歳です。 | sed 's/([^a-‐zA-‐Z0-‐9]) ([a-‐zA-‐Z0-‐9])/12/g' | sed 's/([a-‐zA-‐Z0-‐9]) ([^a-‐zA-‐Z0-‐9])/12/g' • $ echo 私の名前は space invader です。4 歳です。 | sed 's/([^[:alnum:]]) ([[:alnum:]])/12/g' | sed 's/([[:alnum:]]) ([^[:alnum:]])/12/g' 2013/11/2 第7回シェル芸勉強会 15
16.
問題4 • 次のマーク付きの文について 「<b>hoge</b>」が重複していることを
ワンライナーで示してください。 – <b>hoge</b>は<b>fuge</b>なので<b>hoge</ b>fugeだよね。 2013/11/2 第7回シェル芸勉強会 16
17.
解答 • $ echo
'(略)' | grep -‐o '<b>hoge</b>' | sort | uniq –d • $ echo '(略)' | grep -‐o '<b>[^<]*</b>' | sort | uniq –d • grep –o なし – $ echo '(略)' | gsed 's/<b>/n&/g' | gsed 's;</b>;&n;g' | grep '^<b>' | sort | uniq -‐d 2013/11/2 第7回シェル芸勉強会 17
18.
問題5 • 00001〜20000という名前の空のファイルを 作ってください。
2013/11/2 第7回シェル芸勉強会 18
19.
解答 • $
seq -‐w 1 20000 | xargs touch • $ seq 1 20000 | awk '{prinj("%05dn",$1)}' | xargs touch • Tukubaiを使用した例 – $ seq 1 20000 | maezero 1.5 | xargs touch 2013/11/2 第7回シェル芸勉強会 19
20.
問題6 • a) さきほど作った2万個のファイルのリストを
なるべく短い時間で作ってください。 • b) ファイルを消してください。 2013/11/2 第7回シェル芸勉強会 20
21.
解答 • 問題a –
$ ls -‐f > /tmp/list • 問題b – $ pme rm –Rf <ディレクトリ> – $ pme echo * | xargs rm – $ ls -‐f | xargs rm (ただしエラーが出る) – $ ls -‐U | xargs rm 2013/11/2 第7回シェル芸勉強会 21
22.
問題7 • 右下の図のようなディレクトリ、ファイルを作り、 例えば
./a/001 なら ./a_001 ./b/c/123 なら ./b_c_123 のようにパスの「/」を アンダースコアに変えて、 ./ にコピーを置いてください。 – できる人はwhileやfor を使わないで 2013/11/2 第7回シェル芸勉強会 22
23.
解答 • $ find
. -‐type file | sed 's;./;;' | while read f ; do cp $f $(echo $f | sed 's;/;_;g') ; done • $ find . -‐type file | sed 's;./;;' | gawk '{print $1,gensub(///,"_","g",$1)}' | xargs -‐n 2 cp • 会場から – $ find . -‐type file | sed 's;./;;' | gawk '{print "cp", $1,gensub(///,"_","g",$1)}' | sh 2013/11/2 第7回シェル芸勉強会 23
24.
問題8 • /etc/ 下の読み込み可能な各ファイルについて、
fooと書いてある行の数を数えてください 2013/11/2 第7回シェル芸勉強会 24
25.
解答 • $ grep
–c -‐r foo /etc 2> /dev/null • $ grep -‐r foo /etc 2> /dev/null | sed 's/:.*//' | uniq -‐c 2013/11/2 第7回シェル芸勉強会 25
26.
問題9 • 今度は、/etc/ 下の読み込み可能な各ファイル
について、fooの数を数えてください 2013/11/2 第7回シェル芸勉強会 26
27.
解答 • Macの場合(面倒) –
$ grep -‐r -‐o foo /etc 2> /dev/null | awk '{if($1=="foo"){print a}else{print;a=$1}}' | uniq –c • GNU grepだと楽 – $ grep -‐r -‐o foo /etc 2> /dev/null | uniq –c • GNU Awkユーザ会会長のこわい解答 – $ find /etc/ -‐type file | xargs -‐n 1 awk '{a+=gsub(/foo/,"")} END{print FILENAME,a}' 2013/11/2 第7回シェル芸勉強会 27
28.
問題10 • 日付の古い順にソートしてください 2013/11/2 第7回シェル芸勉強会 28
29.
解答 • $ cat
days | LANG=C gdate "+%s" -‐f -‐ | sort | awk '{print "@" $1}' | LANG=C gdate "+%b %d, %Y" -‐f -‐ | sed 's/ 0/ /' • 会場から – $ cat days | sort -‐k3,3 -‐k1,1M -‐k2,2n 2013/11/2 第7回シェル芸勉強会 29
30.
おわりに • 次は・・・ #!/usr/local/beer/bash
(BSDっぽくしてみた。) 2013/11/2 第7回シェル芸勉強会 30
Baixar agora