Submit Search
Upload
20130622第5回シェル芸勉強会スライド
•
12 likes
•
14,992 views
Ryuichi Ueda
Follow
@KDDIウェブコミュニケーションズ様
Read less
Read more
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
20131102 第7回シェル芸勉強会
20131102 第7回シェル芸勉強会
Ryuichi Ueda
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
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
Recommended
20131102 第7回シェル芸勉強会
20131102 第7回シェル芸勉強会
Ryuichi Ueda
20131222 第8回シェル芸勉強会スライド
20131222 第8回シェル芸勉強会スライド
Ryuichi Ueda
20130216 シェル芸爆破デスマッチ勉強会
20130216 シェル芸爆破デスマッチ勉強会
Ryuichi Ueda
20130413シェル芸勉強会スライド
20130413シェル芸勉強会スライド
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
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
PCさえあればいい。
PCさえあればいい。
bleis tift
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
th0x0472
第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
More Related Content
What's hot
部活でシェル芸がはやらない
部活でシェル芸がはやらない
xztaityozx
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
Hisatoshi Onishi
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
Masaru Mizuochi
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
Hiromu Shioya
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
Nobutada Matsubara
PCさえあればいい。
PCさえあればいい。
bleis tift
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
Kanetaka Heshiki
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
th0x0472
What's hot
(9)
部活でシェル芸がはやらない
部活でシェル芸がはやらない
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
NEORT ミートアップ #1 LT クリエイティブコーディングの行方
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
第7回社内勉強会「Code Sucks - 人の振り見て我が振り直せ」
入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
PCさえあればいい。
PCさえあればいい。
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
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
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
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
第34回シェル芸勉強会
第34回シェル芸勉強会
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
20130622第5回シェル芸勉強会スライド
1.
第5回シェル芸勉強会 (プレーンタイプ) USP友の会 上田 隆一
2.
近況 • 8月、シェル芸勉強会が某所に殴り込み •
8月、私自身、某所に殴り込み 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 2
3.
こっちに来るな h-p://typhoon.yahoo.co.jp/weather/jp/typhoon/eye/ 2013/6/22 第5回シェル芸勉強会(プレーンタイプ)
3
4.
こんなのも来てた(PM2.5) 2013/6/22 第5回シェル芸勉強会(プレーンタイプ)
4
5.
どうする? シェル芸でやり過ごす!
来るのはしょーがない 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 5
6.
シェル芸とは? • マウスも使わず、ソースコードも残さず、 GUIツールを立ち上げる間もなく、
あらゆる調査・計算・ テキスト処理を コマンド入力一撃で終わらす。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 6 セルゲイ・ハリトーノフ(無関係)
7.
今回の内容 • ベーシックな問題10問 – ファイル・ディレクトリ操作
– sed & AWKのパズル 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 7
8.
注意 • 解答例は Mac
で作成 • Linux の人は gawk, gsed, tail -‐r を適宜 awk, sed, tac に読み替えのこと • その他環境でも、解答例にこだわらずネット等を 調べながら解答願います。 • 解答では、例題が解ければよい。 – 一般解を探すのは、場合によっては悪い癖となる。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 8
9.
問題1 • あるディレクトリで適当にファイルへの シンボリックリンクを作り、リンク先のファイルを
コピーして実体のあるファイルに置き換えてください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 9
10.
解答 • $ ls
-‐l | grep ^l | awk '{print $NF,$(NF-‐2)}' | while read f t ; do mv $t $t.org ; cp $f $t ; done 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 10
11.
問題2 • /etc/hosts と
/etc/resolv.conf をつなげて、 以下のように各行に元のファイル名がついた 一つのファイルを作ってください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 11
12.
解答 • $ grep
"" /etc/hosts /etc/resolv.conf |sed 's/:/ /' • $ awk '{print FILENAME,$0}' /etc/hosts /etc/resolv.conf 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 12
13.
問題3 • 問題2で作ったファイルを適当なディレクトリの 下に復元してください。 2013/6/22
第5回シェル芸勉強会(プレーンタイプ) 13
14.
解答 • $ cat
file | sed 's;/etc/;;' | awk '{f=$1;sub(/^[^ ]* /,"",$0);print $0 > f}' • $ cat file | sed 's;/etc/;;' | keycut -‐d %1 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 14
15.
問題4 • a, bそれぞれについて、一番下にある行を
取り出してください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 15
16.
解答 • cat data2
| sort -‐s -‐k1,1 | awk '{if($1=="a"){a=$2} else{b=$2}}END{print "a",a;print "b",b}' • cat data2 | sort -‐s -‐k1,1 | awk '{n[$1]=$2} END{print "a",n["a"];print "b",n["b"]}' • $ cat data2 | sort -‐s -‐k1,1 | tail -‐r | sort -‐u -‐k1,1r • $ cat data2 | sort -‐s -‐k1,1 | tail -‐r | sort -‐us -‐k1,1 • $ tail -‐r data2 | sort -‐su -‐k1,1 • $ cat data2 | sort -‐s -‐k1,1 | getlast 1 1 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 16
17.
問題5 • 下の図のように魔方陣を作って、 魔方陣になっているかどうか確認してください。 2013/6/22
第5回シェル芸勉強会(プレーンタイプ) 17
18.
解答 • AWKでゴリゴリ –
$ cat data1 | awk '{a+=$1;b+=$2;c+=$3;d+=$NR; e+=$(4-‐NR);print $1+$2+$3}END{print a,b,c,d,e}' | tr ' ' 'n' | uniq • Open usp Tukubaiを使う $ cat data1 | ysum | self 4 | uniq $ tateyoko data1 | ysum | self 4 | uniq $ awk '{a+=$NR;b+=$(4-‐NR)}END{print a; print b}' data1 | uniq 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 18
19.
問題6 • /usr/share/dict/words 等辞書ファイルから、
大文字で始まる単語、小文字で始まる単語 の数を数えてください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 19
20.
解答 • $ cat
/usr/share/dict/words | sed 's/(.).*/1/' | tr 'a-‐z' 's-‐s' | tr 'A-‐Z' 'l-‐l' | sort | uniq –c • $ cat /usr/share/dict/words | sed 's/[a-‐z].*/s/' | sed 's/[A-‐Z].*/l/' | sort | uniq –c • $ cat /usr/share/dict/words | self 1.1.1 | awk '$1>="a"{s++}$1<"a"{l++}END{print s,l}’ • $ cat /usr/share/dict/words | self 1.1.1 | awk '$1>="a"{print "s"}$1<"a"{print "l"}' | sort | count 1 1 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 20
21.
問題7 • $ echo
ダァシエリイェス して、ワンライナーで字を反転してください。 (「ダ」がめんどくさい) スェイリエシァダ 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 21
22.
解答 • $ echo
ダァシエリイェス | gsed 's/ダ/&n/g' | gsed '2s/./&n/g' | tail -‐r | tr -‐d 'n' • $ echo ダァシエリイェス | gsed -‐e 's/ダ/ダn/' -‐e 's/./&n/ g' | tail -‐r | tr -‐d 'n' | sed 's/ダ/ダ/' • $ echo ダァシエリイェス | nkf -‐X | rev | nkf –Z4 • $ echo ダァシエリイェス | zen | gsed 's/./&n/g' | tail -‐r | tr -‐d 'n' | han 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 22
23.
問題8 • 以下のような図形を出力してください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ)
23
24.
解答 • $ echo
1 3 5 7 7 5 3 1 | tr ' ' 'n' | awk '{print 4-‐ int($1/2),$1}' | awk '{for(i=1;i<=$1;i++){prinu " "} for(i=1;i<=$2;i++){prinu "a"}print ""}’ • $ echo 4 1 | awk ‘NR==1{s=$1;a=1}END{for(i=1;i<=4;i ++){print s-‐-‐,a;a+=2}}’ | awk ‘{for(i=1;i<=$1;i++){prinu “ ”};for(i=1;i<=$2;i++){prinu “a”};print “”}’ > a ; tail -‐r a | cat a – 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 24
25.
問題9 • 右図のように縦に一つずつ ランダムにずらして
字を出力してください。 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 25
26.
解答 • $ echo
15 | awk '{a=10; for(i=1;i<=$1;i++){a=a+(rand() > 0.5?-‐1:1);print a}}' | awk '{for(i=1;i<=$1;i++){prinu " "}prinu "on"}' 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 26
27.
問題10 • /usr/share/dict/words から抽出した単語で、
this is a pen という出力を得てください。 – ただし、数字は一切使わないこと – シェル変数、ファイルに出力もしないこと – for, while, && 禁止 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 27
28.
解答 • $ cat
/usr/share/dict/words | awk '/^this$/{prinu "_ ";print}{print}' | awk '/^is$/{prinu "__ ";print}{print}' | awk '/^a$/{prinu "___ ";print}{print}' | awk '/^pen$/{prinu "___ ";print}{print}' | grep ^_ | sort | tr -‐d '_' | tr 'n' ' ' 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 28
29.
おわりに • 次は・・・ #!/beer/bash
(このスライド、使い回し。) 2013/6/22 第5回シェル芸勉強会(プレーンタイプ) 29
Download now